Git Product home page Git Product logo

betterstorage's Introduction

BetterStorage

.. is a Minecraft mod which adds more storage options. It aims for fun, interesting and balanced features which would fit well into vanilla Minecraft, but also work nicely together with other mods. Information about all its features can be found in the Minecraft Forums thread.

BetterStorage is licensed under the MIT license, so feel free to modify and distribute it all you want. If you're planning to contribute features to the master repository, I'd appreciate if you talk to me first. You can reach me on the forums, via email or on IRC.

Setting up the Development Environment

Thanks to the magic of gradle, setting up the development environment is easy.

In the windows or linux/unix command prompt, run ./gradlew setupDecompWorkspace, then run either ./gradlew idea or ./gradlew eclipse depending on what IDE you use.

Localizations

If you want to contribute localizations, make sure to keep the structure intact. The #'s in the tooltip section are used as new lines. Keep the tooltips short, try to use the same amount of #'s as the en_US language file or less.

You can test your translation easily by moving it into the mod's .jar file in the folder assets/betterstorage/lang/. Use this to make sure the tooltips look good with different window sizes and GUI scales.

betterstorage's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

betterstorage's Issues

Enchantment API

I was recently trying to add your locks to another storage mod but when I got to handling the block hardness and explosion resistance I found that there's no pure API method for handling the enchantment modification. You might need to add something to the API that accounts for the lock being enchanted without the other mods having to use your code to build against.

Locked Chests Accessible via Pipes

It looks like your locked inventories can still be pulled from when they're locked. This defeats the purpose of locking them. I was able to attach a wooden transport pipe to a locked chest and use an autarchic gate to pull all the contents out.

NPE when another mod tryes to remove an Item

Crash-report: http://pastebin.com/iyE1C6aR (This was with LP with the Special BetterStorage handler disabled)

When an mod tries to remove an item from crates by setting the slot to null BetterStorage throws an NPE.

To fix this you could add something like:

if(stack == null) {
  data.removeItems(oldStack);
  return;
}

at https://github.com/copyboy/mod_BetterStorage/blob/master/src/net/mcft/copy/betterstorage/inventory/InventoryCrateBlockView.java#L34

And additionaly a question:
Would LP be allowed to bypass the new config option and connect to crates even when the option is disabled inside the BetterStorage config. LP would get it's own config option for that which would be on by default. Because LP has a special handler for Crates there shouldn't be any dupe bug.

Locked crates which spawn in the world

Would have a high chance (depending on difficulty) to have a lock that's enchanted.
If the lock has the trigger enchantment, place some TNT below it.

ICrateStorage

Will allow mods to access crate data directly, allowing them to view all items and increase performance when interacting with them.

Barrels to store a single type of item or liquid, multi-block-able

Item Storage

Maybe 24 (less than a chest, more than a crate) or 32 (more than a normal chest, less than a reinforced one) stacks. This is because barrels make it easier to organize things, and with other mods sorting can be done pretty easily. I don't want them to be as large as factorization barrels. Perhaps it'll be a config option.

Compatible with machines, items can be put into or pulled out of any sides.

Liquid Storage

Two options:

  • Either 4 or 8 buckets. This would be way less efficient than storing liquid in chests (with buckets), but I don't want to go any higher than this. Like I always say, BetterStorage is balanced around vanilla, and if you don't like it, there's other mods that add more space efficient storage, why not use them instead?
  • I liked how in RedPower you'd have to build tanks out of any blocks and store actual source blocks in it, having a 1:1 ratio. Maybe I want to have barrels be a 1:1 liquid storage thing, only used for recipes, and instead add a block that adds the RP2 grate feature for in-world liquid storage.

Liquid API compatible, so liquids can be pumped in of out or them from any side.

Recipes

There'll be recipes for barrels, meaning some items and liquid can be stored together and create different items and/or liquid. When the amount of items and liquid is right, the process starts and after a variable amount of time the recipe finishes.
Maybe multiple items can be processed at the same time, but each of them will have it's own timing which will start when the requirements for those are met and reset when something is missing.

Example Recipes

1 bucket = 1B = 1000mB (millibuckets)
1 bottle = 250mB (also see MinecraftForge/MinecraftForge#795)

6 sticks + 200mB water => 60sec => 4 pulp, used for cardboard
8 paper + 125mB water => 30sec => 2 pulp
6 rotten flesh + 500mB milk => 40sec => 1 leather
1 obsidian + 250mB lava => 80sec => 1 obsidian ingot
1 potion ingredient + 1B water / potion liquid => 120sec => 1B potion liquid with ingredient applied
This is an alternative to normal brewing. More efficient, but takes more time.

Maybe add recipes for turning metal items back into their ingots at the cost of some lava.

Interaction, GUI

  • Right clicking will attempt to place the item inside the barrel.
  • Right clicking to put in or take out liquid with an item, like a bucket.
  • Left clicking will remove items from the barrels.
    Unsure whether to drop them on the floor or give them to the player instantly.
  • Use attachments if multiple options are available, for example water bottles?
    Maybe use attachments for everything?
  • Right clicking with an empty hand will open the GUI, if it's not a basic barrel.

The GUI will have at least 1 item slot, 1 region for the amount of liquid and a way to display the progress of the recipe. Most likely I'll add an item output slot, which is only visible when needed. Maybe an output liquid region, but I could just require the liquid amount to match exactly.

Additional Notes

Different materials: Basic, water proof (can hold water, milk, and other registered liquids), improved (can hold all liquids, more storage). Another tier you can get to with Thaumcraft is also an option. Will be compatible with #23.

This is obviously something I'll have to test out, see if I can find the right feel for it. Otherwise I might just scrap everything to be completely honest. With the grate block I may not even need liquid storage in a block. Crates are a good alternative. Many other mods have barrels. The only reason I want to add them is because of the recipe idea I had.

Ender backpack

Is only available as an item when crafting, never if not crafted normally.

Teleports when attempted to be broken. Has to be equipped to be moved.

Invisibility enchantment for locks

Level 1: Makes the lock invisible. Rarely shimmers very subtle.
Level 2: Makes the whole container invisible. Probably hide the bounding box.

Cardboard box

The idea is to have an item that allows transporting stuff from one place to another, but can only be used once to avoid it turning into a cheap way to expand the player's inventory.

Display some or all of the contents in the box's tooltip.

Vault

Multi-block structure that can store a large number of individual items (meaning 64 dirt will take up the same space as 64 swords). Should feature a GUI with scroll bar and search box.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.