Binnie's Drinks & Spice Of Life - Interaction Issue
Danekjovax opened this issue ยท 5 comments
Version Info:
modpack-Dungeons Dragons & Space Shuttles v.6.3
forge-1.12.2-14.23.5.2807-universal
binnie-mods-1.12.2-2.5.1.188
SpiceOfLife-mc1.12-1.3.12
solcarrot-1.12.2-1.8.3
I'm not sure where the root cause of this issue resides, so I'll put the issue to both mods' and let you both discuss.
I recently brewed up some Binnie's Drinks, and looking at the tooltip for one of them I noticed some strange OreDict info with it (I am using extended JEI view):
Not sure if that's an issue, but it may relate to what I saw next. In Spice of Life, foods/drinks are recorded if you've had them or not. At the time, I haven't had any of the Binnie's Drinks, so they all reported as "Not Yet Eaten! ..." in the tooltip info. I drank one of the Apple Juices I just brewed (from the Fruit Press), and SoL registered I drank it (sparkle effect for eating/drinking new food happened).
When I looked in my Food Book (SoL), I saw that ALL the drinks were recorded as being "Tried"!
Why did this happen? This also seems to have caused a desynch in the foods "Tried" in the food book as a result:
Let me know if you need more info. Thanks for your great mods, and I pray we can find a solution to this conundrum. ;2)
Looks to be an issue with how forge registers universal bucket items, which the Binnie Core bottle is, and with how Spice of Life distinguishes foods. The bottle items all share an item number and meta number which is what SoL uses to store it in a list of foods. This could be fixed on the mod's side by not using the forge bucket for the bottle and that's likely what will have to be done as I doubt that SoL will want to change it's storage method.
Ah yes, the actual list used for the player's health counts all items without subtypes as one (based on getHasSubtypes()
, while the food book simply collects all items (flattened to their getSubItems()
) and marks them as either eaten or not eaten depending on whether them (or an equivalent) has been eaten. I guess one of two things is happening here:
getHasSubtypes()
returns false, butgetSubItems()
returns extra items, orgetHasSubtypes()
returns true, andgetSubItems()
is somehow returning items that match each other when compared without their tag (which is what the food list checks to see if an item has been eaten).
getHasSubtypes()
returns true and and the bottled fluids are only distinguished by an nbt tag, "Fluid".
Ah yes, so there's no conceivable way we could fix this from our side, since items could also have subtypes and different tags despite being conceptually the same item (e.g. a renamed golden apple).