- 
                Notifications
    
You must be signed in to change notification settings  - Fork 5
 
Description
StorageSpecs are currently created on init in static final fields (see the coal generator) which are then passed to the machine constructor.
This is not a particularly nice system - its extremely rigid as builders are only instantiated once. After loading it cannot be changed which poses issues for de-synchronized client/server configs.
To better handle runtime configuration changes, it needs to either grab values from the world context or be replaced with a new system.
Previous Systems
Storages registered via MachineTypes
Seemed cumbersome to have to externally register the storage data. Ideally, the information should stay in the class as it's where it is most likely to be used. This system still has the same sync issues, but it's possible to change the registration to a callback that will be run at world load.
Storages created via createXXStorage methods in the BlockEntity
This caused breakage when config values were updated at runtime (in-world).