GregTechCE / GregTech

GregTech rewrite for modern versions of Minecraft
GNU Lesser General Public License v3.0
270 stars 150 forks source link

[Suggestion] Add feature to allow "upgrading" of covers #1667

Open royalmustard opened 3 years ago

royalmustard commented 3 years ago

Is your feature request related to a problem? Please describe. When upgrading your machinery, sometimes it is neccessary to upgrade your covers because the cannot keep up. It is tedious to have first remove the old cover, place the new cover and redo the configuration.

Describe the solution you'd like When placing a cover of a higher tier on a machine where another cover already sits, the cover should simply be "upgraded", keeping all configuration.

Additional context This is similar to what is discussed in #1663, but could be done without an extra item to store and retrieve configurations.

warjort commented 3 years ago

but could be done without an extra item to store and retrieve configurations.

It's not really the GregTech way to do things for free. The philosophy of the mod is that you invest in infrastructure that lets you construct things to make your life easier as you progress.

I don't see why there couldn't be something similar to the configurator that lets you swap covers if you have a better version in your inventory (similar to how the configurator can swap filters in a cover). It would require some extra metadata/logic so the tool knows what is a valid upgrade meaning the configuration can be reliably preserved from the original cover. As it stands, the tool would not be able to tell whether a cover is an upgrade or a downgrade since the tiering is largely a convention (typically a cover specific configuration like transfer speed).

MaxistheSpy commented 3 years ago

might be nice to have this same thing but for the whole block. where it just upgrades the block and keeps the covers and all I/O settings the same.

warjort commented 3 years ago

might be nice to have this same thing but for the whole block. where it just upgrades the block and keeps the covers and all I/O settings the same.

That would be different (and in reality probably easier to implement). But it is not just copying configuration, it is also copying state from the old block to the new. e.g. inventories (item/fluids) or power buffers. It's also the "slippery slope" discussed in #1588