jaquadro / StorageDrawers

A mod adding compartmental storage for Minecraft Forge
MIT License
198 stars 156 forks source link

Rebalance drawer capacity upgrades #1007

Open TheRealWormbo opened 2 years ago

TheRealWormbo commented 2 years ago

There are some balance issues with the drawer updates that provide increased capacity:

I suggest rebalancing the default recipes for capacity upgrades to solve these issues:

Optionally, it might even be worth considering a numeric "nerf" to capacity upgrades. That would be a breaking change though, and thus should probably be considered only for a Minecraft version change. This change would include:

BlackShadow77 commented 2 years ago

I really agree with these suggestions but i'll not make crafting redundant.

  • Make capacity upgrades an incremental crafting recipe. Taking a page out of Iron Chests' book here – how about requiring a capacity upgrade instead of a template to craft the next-higher tier? (e.g. iron upgrade for crafting gold, gold upgrade for crafting diamond) The lowest tier obviously still uses the upgrade template.

If u have some system like AE2 or refined storage can be a great idea because you have the autocrafting but will be really annoing to craft all this upgrade manually. I also want to suggest to add netherite and not replace emeralds (i use iron furnaces as reference).

  • Changing the way the capacity multiplier is calculated. Currently it only exists when capacity upgrades are installed, which means two tier 1 upgrades quadruple the capacity. How about defining it to be 1 by default and having the first tier of upgrades start at +1 instead of +2?

I also want to suggest to just change the way capacity upgrades work swapping multiplicative method with an additive method. Can also be a configurable option

snakemasterepic commented 6 months ago

Here's a CraftTweaker script I wrote to modify the recipes so that the higher tier storage upgrades require the lower tier upgrades to be crafted. Feel free to use this in your modpacks:

craftingTable.removeByName("storagedrawers:iron_storage_upgrade");
craftingTable.removeByName("storagedrawers:gold_storage_upgrade");
craftingTable.removeByName("storagedrawers:diamond_storage_upgrade");
craftingTable.removeByName("storagedrawers:emerald_storage_upgrade");

craftingTable.addShaped("iron_storage_upgrade", <item:storagedrawers:iron_storage_upgrade>, [
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>],
    [<item:minecraft:iron_ingot>, <item:storagedrawers:obsidian_storage_upgrade>, <item:minecraft:iron_ingot>],
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>],
  ]);

craftingTable.addShaped("gold_storage_upgrade", <item:storagedrawers:gold_storage_upgrade>, [
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>],
    [<item:minecraft:gold_ingot>, <item:storagedrawers:iron_storage_upgrade>, <item:minecraft:gold_ingot>],
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>]
  ]);

craftingTable.addShaped("diamond_storage_upgrade", <item:storagedrawers:diamond_storage_upgrade>, [
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>],
    [<item:minecraft:diamond>, <item:storagedrawers:gold_storage_upgrade>, <item:minecraft:diamond>],
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>]
  ]);

craftingTable.addShaped("emerald_storage_upgrade", <item:storagedrawers:emerald_storage_upgrade>, [
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>],
    [<item:minecraft:emerald>, <item:storagedrawers:diamond_storage_upgrade>, <item:minecraft:emerald>],
    [<item:minecraft:stick>, <item:minecraft:stick>, <item:minecraft:stick>]
  ]);