LemADEC / WarpDrive

A warp drive mod for minecraft
69 stars 39 forks source link

Consider block metadata in Dictionary configuration #516

Closed kolamp closed 1 year ago

kolamp commented 2 years ago

Is your feature request related to a problem? Please describe. The Laser mining machine treats ExtraPlanets' stones, e.g. Mercury stone, as ores. This is due to the fact that the same block name is used for stones as well as different ores, just the metadata changes. The warpdrive dictionary configuration however does not consider the metadata, if I read the code correctly.

Describe the solution you'd like Consider block metadata in the Dictionary configuration, maybe similar to how it is done already in the DataFixer configuration file. As a bonus, one could then also define special behaviour for variants of blocks/items/entities only.

Describe alternatives you've considered Make all other mod authors use proper block names....

Additional context If you want to reproduce, here are the mods I used:

LemADEC commented 2 years ago

I'm only aware of a 1 other edge use-case for that due to ImmersiveEngineering mixing unrelated blocks behind the same blockId.
With ExtraPlanets, those 2 mods are clearly doing it wrong in terms of compatibility.
Implementing support for those implies a lot of changes in WarpDrive, including across its API with other mods. It wasn't considered worth it during the 1.10+ port, and it's still isn't on 1.12. That being said, this is fixed in the 1.15+ port of WarpDrive, so it'll be fixed eventually.

kolamp commented 2 years ago

I see, thanks for the clarification.

I was thinking about overloading dictionary entries/lookups, making the additional metadata argument optional. That way, no changes to the API or even other code accessing the dictionary within WarpDrive would be necessary.

I am aware though, that this is low priority.