While the core features of this mod are implemented, there is still much I want to do with it, so don't be surprised if things changes!
One of my biggest issues with Minecraft, specifically modded Minecraft, is how we begin to lose our sense of scale very easily. The general theme these days is essentially magic blocks that can do anything and everything we desire of them, without taking much in the way of space. There's no incentive to create vast factories, or massive warehouses, simply because the bulk of it would end up being empty space.
With Impractical Storage, I aim to change all that. See, Impractical Storage adds another method of storing your vast quantities of Blocks and Items, but does so in a very different way. Instead of supplying you with a GUI and Slots, which manages to stuff all your gold into a one block space, Impractical Storage makes the World your storage space, and ensures you can only store as much as you have room for.
Mod Details
Everything in this mod centers around the 'Storage Controller', crafted like so
When placed in the world, it designates a defined space in front of it as the 'zone' used to store any Blocks or Items. By default (defaults changeable in the config), a 9x8x8 area is designated. By right-clicking the block, the config GUI will appear, which allows for a couple options, including changing the zone boundaries, and zone offset
The top three numbers designate the zone's X, Y, and Z values respecively
The bottom three numbers designate the zone's X, Y, and Z offset
Other options in this GUI including toggling the visability of the zone boundaries (useful for debugging), and changing the sorting mode of the controller.
The sorting mode handles how blocks are visually stored when in the world. Currently, there are four options, which are ROWS, COLUMNS, PYRAMID, and MESSY, shown here from left to right
Generally, when blocks are placed in the world, they'll look exactly the same as they would if you placed them yourself. There are some differences though. Essentially, the blocks plaed in the world aren't real blocks. They're unable to be broken (unless in creative mode), and won't interact with any other blocks.
Items function the same, but visually will show up as a marked crate, and unlike blocks, can store up to 16 items in one crate (block space).
So how do you interact with the block? Same way you interact with any other inventory. Blocks and items can be piped in and out the same way you'd interact with a chest, using whatever means you desire. Not only that, but blocks in the world can be shift-right-clicked to retrieve them, and any blocks placed inside the controller's zone will be added to the inventory
If you find yourself needing more sides in which to interact with your controller, or want a spot that works better with your setup, you can craft a Controller Interface
The Controller Interface, when placed next to an existing Controller's zone, will directly interface with that Controller's inventory, placing any items/blocks inserted into it into the zone, same as would happen when interacting directly with the controller
When placed properly, the interface will glow green! If it's not placed adjacent to a controller's zone, it will remain gray, and if it's next to more than one controller zone, it will glow red
Utility Blocks
Impractical Storage also adds several utility blocks to make item transportation and storage more fun, while still keeping with the overall style of the mod
First one is the Blockvayor, which, as the name suggests, functions the same as a standard conveyor belt, but moves blocks physically throughout the world. When placed, it faces towards the player
Next, we have the Gravity Inducer. Any block placed in front of it (or moved, say, with a piston or Blockvayor) will drop, as though it were a Sand or Gravel block
Finally, we have the Itemizer. Any block placed in front of it will drop as an Item in the world, ready to be picked up by a Player or Hopper (or any other block)
Config Options
Impractical Storage also comes with a fair amount of config options, in order to make things more to your liking, and to help out server owners
blockUpdateBatchCount: How many blocks should be placed each time an update is triggered (based on blockUpdateRate). If set to -1, blocks will simply be set as they're added to the inventory
blockUpdateRate: How often (in ticks) should new blocks be placed. If set to -1, blocks will simply be set as they're added to the inventory dropBlocks: Whether the controller should drop all stored blocks when broken, or whether it should keep them placed in the world
zoneUpdateRate: How often (in ticks) should new Blocks placed in a Controller's area (by player, machine, etc) be added to the inventory
Images/Videos:
Really, the best way to experience and understand this mod is to play with it! I'll be providing more information here soon, as I flesh out some of the upcoming mechanics
Changelog
1.5.0 (for MC 1.12): Initial port
1.4.3: Fixed crash when extracting items from controller
Fixed crash when rendering blocks in world
1.4.2:
Fixed mod not functioning properly on servers
1.4.1: Fixed crash when itemizing block (#40)
Fixed blocks not using metadata when rendering
Fixed items being lost when extracted (#35)
1.4.0: Additions:
Blockvayors: Conveyor belts that move Blocks physically in the world
Gravity Inducer: Causes any block placed in front of it to fall like Sand or Gravel
Itemizer: Causes any block placed in front of it to drop as an Item
Changes:
Simplified Controller recipe
Fixed Mods like WAILA/HWYLA displaying incorrect Block names (#38)
Fixed issues with bad item drops/bad item rendering (#39)
1.3.4: Prevent crashes caused by block rendering (#33, #34)
Prevent controller offset/boundaries being changed while controller contains blocks
1.3.3: Blocks will now stay in world when Controller bounds/offset/sorting mode are adjusted, only dropping if they can no longer fit
1.3.2: Fixed crash when adjusting controller while blocks are in-world (#31, #32)
Fixed issue where removing crates from the world would allow for item duplication (#30)
1.3.1: Fixed issue where Refined Storage would display incorrect Item counts when connected to a Controller (#28)
1.3.0: Fixed bug where breaking the controller would cause a crash (#20)
Fixed more issues with mod interaction (NOTE: Embers Item Pipes currently don't interact properly, a fix is being worked on!) (#21) Items now render on the top of crates, as well as the sides (#23)
Added Pyramid sorting type
Added ability to offset controller bounds via GUI (#22, #24)
Added Controller Interface blocks that connect to the controller of any boundary they touch, and provide another block to insert/pull items from (#25)
1.2.1:
Fully implemented Crate block and tiers (not yet used)
Better determination of whether a Block can stack inside a crate or not (plants, hoppers, etc) Improved render performance for Blocks placed in world. Should fix reported FPS issues with large amounts of items, among other render issues (#11, #13)
Fixed more issues with mod inventory interaction (#16)
Expanded the available localization
1.2.0:
Fixed AIOOB exception when setting block bounds to their max (#8)
Allow for numbers to be typed directly when configuring Controller boundaries (#9)
Fixed issues with mods being unable to extract items from Controller (#10, #12)
Give Controller block hardness and resistance values (# 15)
Added Comparator support (#14)
1.1.0: New config GUI for controller
Ability to set controller bounds in-game
Ability to toggle visible bounds
Ability to set sorting mode in game
Added new sorting mode, columns
2. Would it be possible to require the construction of a multiblock frame of some sort, principally to define the storage area (and capacity). Either almost-any-solid-block (so chisel blocks and bricks etc could all be used), or some kind of buildcraft-quarry-esq frame, which would give an implied mechanisim to the storage and retrieval of blocks. (no need to animate moving parts but that would be cool).
3. Any possibility of an upgrade (requiring RF per operation) that could automatically "pack" blocks and items that have (reversible) 2x2 or 3x3 recipes
Although I do really like the look of a pile of stuff...
Heres an idea to extend the in world nature of this kind of storage:
Make a "ticket" crafted from paper. that can be crafted with an item (stack) to return the item and an item ticket. Then, if a controller has an item ticket inserted into it, it destroys the ticket, and ejects the corresponding item like a dropper.
Then, with the immersive engineering example, a player could create tickets at a central place, put them on conveyor belts, and then receive the items that will be carried back.
I've released v1.1.0! Main post has been updated with a better guide on the different features of the mod
1.1.0:
[/b]New config GUI for controller
Ability to set controller bounds in-game
Ability to toggle visible bounds
Ability to set sorting mode in game
Added new sorting mode, columns
Honestly, I'd like the crate to store 64 of an item. More compact that way. Also, the 2x2 and 3x3 auto-packing feature suggested by GreenZombie could be nice to implement. Maybe even sound effects for packing and unpacking items?
Rollback Post to RevisionRollBack
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!
I very much like the idea, however there is a good reason why all other mods do not store in the world: chunk updates are one of the strongest reasons for lag in Minecraft.
Take your mod, multiply the world updates x 20 for all players, and have them mine with a quarry at 50 blocks/s. That will be 1000 chunk updates per second because of your mod, and that alone will put a heavy strain on most servers. And keep in mind that nothing else in the world has been done so far, except for storing and retrieving blocks.
Now I've seen that you already did some batching and caching in your mod, but even then most server owners will not install a mod that wastes so much CPU and traffic for nothing but looking pretty. (And it really does look pretty!) So it's a nice thing for single-player and maybe with a few friends, but other than that it won't work as it is right now.
An idea how to fix that:
Instead of actually placing blocks in the world, place a large entity in the world that has the exact dimension of the storage space (but not the boundary box, yet). Then instead of doing block updates, have an internal storage on the storage block alone, transmit that storage as a special message to the clients (as do all the other storage blocks) and then just have the client render the entity to look like the storage space as it is right now.
This way you will essentially have the exact same thing (from how the user sees it), but it won't do any block updates and therefore won't cause any noticeably lag on the server. And you could also do things like piles of diamonds instead of crates that appear out of nowhere.
Definitely good points, and definitely something that I know needs to be addressed. That being said, remember BC quarries? The same basic concept applied, just the reverse of course, and they were still widely used
Welcome to the first ever bug fix update! No new features, just squashed bugs
Fixed AIOOB exception when setting block bounds to their max (#8)
Allow for numbers to be typed directly when configuring Controller boundaries (#9)
Fixed issues with mods being unable to extract items from Controller (#10, #12)
Give Controller block hardness and resistance values (# 15)
Actually, I lied, there is one new feature
Added Comparator support (#14)
All bug fixes and feature requests came from the GitHub Issue Tracker. All future bug reports and feature requests should be submitted there
Tried it out, look cool! Just wanted to point out that some blocks (like stairs) don't have a texture when you remove them by shift-right clicking, and also that fluids disappear while in the storage area, don't know if that's a bug or a feature.
Mod Details
When placed in the world, it designates a defined space in front of it as the 'zone' used to store any Blocks or Items. By default (defaults changeable in the config), a 9x8x8 area is designated. By right-clicking the block, the config GUI will appear, which allows for a couple options, including changing the zone boundaries, and zone offset
The top three numbers designate the zone's X, Y, and Z values respecively
The bottom three numbers designate the zone's X, Y, and Z offset
Other options in this GUI including toggling the visability of the zone boundaries (useful for debugging), and changing the sorting mode of the controller.
The sorting mode handles how blocks are visually stored when in the world. Currently, there are four options, which are ROWS, COLUMNS, PYRAMID, and MESSY, shown here from left to right
Generally, when blocks are placed in the world, they'll look exactly the same as they would if you placed them yourself. There are some differences though. Essentially, the blocks plaed in the world aren't real blocks. They're unable to be broken (unless in creative mode), and won't interact with any other blocks.
Items function the same, but visually will show up as a marked crate, and unlike blocks, can store up to 16 items in one crate (block space).
So how do you interact with the block? Same way you interact with any other inventory. Blocks and items can be piped in and out the same way you'd interact with a chest, using whatever means you desire. Not only that, but blocks in the world can be shift-right-clicked to retrieve them, and any blocks placed inside the controller's zone will be added to the inventory
If you find yourself needing more sides in which to interact with your controller, or want a spot that works better with your setup, you can craft a Controller Interface
The Controller Interface, when placed next to an existing Controller's zone, will directly interface with that Controller's inventory, placing any items/blocks inserted into it into the zone, same as would happen when interacting directly with the controller
When placed properly, the interface will glow green! If it's not placed adjacent to a controller's zone, it will remain gray, and if it's next to more than one controller zone, it will glow red
Utility Blocks
Impractical Storage also adds several utility blocks to make item transportation and storage more fun, while still keeping with the overall style of the mod
First one is the Blockvayor, which, as the name suggests, functions the same as a standard conveyor belt, but moves blocks physically throughout the world. When placed, it faces towards the player
Next, we have the Gravity Inducer. Any block placed in front of it (or moved, say, with a piston or Blockvayor) will drop, as though it were a Sand or Gravel block
Finally, we have the Itemizer. Any block placed in front of it will drop as an Item in the world, ready to be picked up by a Player or Hopper (or any other block)
dropBlocks: Whether the controller should drop all stored blocks when broken, or whether it should keep them placed in the world
Images/Videos:
Really, the best way to experience and understand this mod is to play with it! I'll be providing more information here soon, as I flesh out some of the upcoming mechanics
Changelog
Initial port
1.4.3:
Fixed crash when extracting items from controller
Fixed crash when rendering blocks in world
1.4.2:
Fixed mod not functioning properly on servers
1.4.1:
Fixed crash when itemizing block (#40)
Fixed blocks not using metadata when rendering
Fixed items being lost when extracted (#35)
1.4.0:
Additions:
Blockvayors: Conveyor belts that move Blocks physically in the world
Gravity Inducer: Causes any block placed in front of it to fall like Sand or Gravel
Itemizer: Causes any block placed in front of it to drop as an Item
Changes:
Simplified Controller recipe
Fixed Mods like WAILA/HWYLA displaying incorrect Block names (#38)
Fixed issues with bad item drops/bad item rendering (#39)
1.3.4:
Prevent crashes caused by block rendering (#33, #34)
Prevent controller offset/boundaries being changed while controller contains blocks
1.3.3:
Blocks will now stay in world when Controller bounds/offset/sorting mode are adjusted, only dropping if they can no longer fit
1.3.2:
Fixed crash when adjusting controller while blocks are in-world (#31, #32)
Fixed issue where removing crates from the world would allow for item duplication (#30)
1.3.1:
Fixed issue where Refined Storage would display incorrect Item counts when connected to a Controller (#28)
1.3.0:
Fixed bug where breaking the controller would cause a crash (#20)
Fixed more issues with mod interaction (NOTE: Embers Item Pipes currently don't interact properly, a fix is being worked on!) (#21)
Items now render on the top of crates, as well as the sides (#23)
Added Pyramid sorting type
Added ability to offset controller bounds via GUI (#22, #24)
Added Controller Interface blocks that connect to the controller of any boundary they touch, and provide another block to insert/pull items from (#25)
1.2.1:
Fully implemented Crate block and tiers (not yet used)
Better determination of whether a Block can stack inside a crate or not (plants, hoppers, etc)
Improved render performance for Blocks placed in world. Should fix reported FPS issues with large amounts of items, among other render issues (#11, #13)
Fixed more issues with mod inventory interaction (#16)
Expanded the available localization
1.2.0:
Fixed AIOOB exception when setting block bounds to their max (#8)
Allow for numbers to be typed directly when configuring Controller boundaries (#9)
Fixed issues with mods being unable to extract items from Controller (#10, #12)
Give Controller block hardness and resistance values (# 15)
Added Comparator support (#14)
1.1.0:
New config GUI for controller
Ability to set controller bounds in-game
Ability to toggle visible bounds
Ability to set sorting mode in game
Added new sorting mode, columns
1.0.0:
Initial release
Download for MC1.12
Download for MC1.10
Download for MC1.11
Downloads: The latest version can be found here
Mod Packs:
* Inclusion in mod packs is allowed by default. I only ask for a link back to this thread.
Like what I do here? You can support me in many ways!
* Follow me on Twitter (@dylantweets)
* Support me on Patreon
I see you attempted to maintain the same design style for this logo so, in keeping with your other mod logos:
This is the most amazing mass storage mod ever.
Two thoughts:
1. When are liquids planned?
2. Would it be possible to require the construction of a multiblock frame of some sort, principally to define the storage area (and capacity). Either almost-any-solid-block (so chisel blocks and bricks etc could all be used), or some kind of buildcraft-quarry-esq frame, which would give an implied mechanisim to the storage and retrieval of blocks. (no need to animate moving parts but that would be cool).
3. Any possibility of an upgrade (requiring RF per operation) that could automatically "pack" blocks and items that have (reversible) 2x2 or 3x3 recipes
Although I do really like the look of a pile of stuff...
1. Not sure if I'm going to do fluid support or not, since there are other mods that do that, but we'll see
2. I've thought about it. For the moment, the boundaries will simply be set via GUI, but it's on my list of maybes
Hahah, looks like a fun idea! This would be the exact opposite of AE where you could stuff everything through terminals
From what I see, instead of reworking what's there, you added a special block storage?
Still, nice job!
Btw are the blocks just visual, or can they be interacted with?
Heres an idea to extend the in world nature of this kind of storage:
Make a "ticket" crafted from paper. that can be crafted with an item (stack) to return the item and an item ticket. Then, if a controller has an item ticket inserted into it, it destroys the ticket, and ejects the corresponding item like a dropper.
Then, with the immersive engineering example, a player could create tickets at a central place, put them on conveyor belts, and then receive the items that will be carried back.
+1
ik this is nowhere near a suggestion, i was just playing around acting like it was and "upvoting" this awesome idea
I've released v1.1.0! Main post has been updated with a better guide on the different features of the mod
1.1.0:
[/b]New config GUI for controller
Ability to set controller bounds in-game
Ability to toggle visible bounds
Ability to set sorting mode in game
Added new sorting mode, columns
This seems really cool, It will be interesting to see what mega warehouses people make with this mod.
https://www.youtube.com/channel/UC3NaDiSS_HpIk4hvEcpcGrw
Honestly, I'd like the crate to store 64 of an item. More compact that way. Also, the 2x2 and 3x3 auto-packing feature suggested by GreenZombie could be nice to implement. Maybe even sound effects for packing and unpacking items?
I just took the Minecraft Noob test! Check out what I scored. Think you can beat me?!
To take the test, check out
https://minecraftnoobtest.com/test.php
Don't click this link, HE is haunting it...
Definitely good points, and definitely something that I know needs to be addressed. That being said, remember BC quarries? The same basic concept applied, just the reverse of course, and they were still widely used
Welcome to the first ever bug fix update! No new features, just squashed bugs
Fixed AIOOB exception when setting block bounds to their max (#8)
Allow for numbers to be typed directly when configuring Controller boundaries (#9)
Fixed issues with mods being unable to extract items from Controller (#10, #12)
Give Controller block hardness and resistance values (# 15)
Actually, I lied, there is one new feature
Added Comparator support (#14)
All bug fixes and feature requests came from the GitHub Issue Tracker. All future bug reports and feature requests should be submitted there
Congratulation on the news feature!
Tried it out, look cool! Just wanted to point out that some blocks (like stairs) don't have a texture when you remove them by shift-right clicking, and also that fluids disappear while in the storage area, don't know if that's a bug or a feature.
I made a mod spotlight for this mod
https://www.youtube.com/channel/UC3NaDiSS_HpIk4hvEcpcGrw
Added! Appreciate it
you're welcome, I enjoyed figuring out how to make the sorting work
https://www.youtube.com/channel/UC3NaDiSS_HpIk4hvEcpcGrw
well what about backporting the mod to 1.7.10? is that possible?
i mean srlsy 1.7.10 is just awesome and it's the most popular!
Um... this is kinda out of the blue but how do i post a question .
Nope. Sorry, no back porting