Topic category: Help with modding (Java Edition)
So here's the concept: A block that is currently powered by a redstone signal, that when placed over a water block, randomly catches fish and places them into an internal inventory.
I have the functionality completed, but when it adds a new fish to the inventory, it overwrites the first fish it finds.
I'm doing a successful loop through the inventory slots to find empty slots or slots that already contain a < 64 count stack of the same kind of fish. I know this part works because it doesn't replace items that aren't fish in any of the slots.
But as soon as it gets to any fish (regular/salmon/clown/puffer), it replaces the old fish with the new, and increments the number of fish by 1.
I've looked at the code and the metadata values are there, but when the block runs, it just ignores them. I have created an issue tag, but the devs told me that if the metadata is there, it should be working just fine.
I can provide code, procedure, project files, etc if anyone can help me.
RESOLVED: So I discovered that the 2020 versions (including the snapshots) of MCreator do not have the == compare procedure block anymore. They were removed because Minecraft 1.13+ flattened metadata, and removed the need for it.
I was able to resolve my issue by opening MCreator 1.9.1 and creating a generic procedure with the == blocks, then exporting that procedure. Jumping over to 2020 versions, I am able to import that generic procedure with the == blocks where they work like they used to.
I was told by the devs that this was acceptable because they want to allow backward compatibility to 1.12.
The == blocks allowed me to successfully compare metadata, fixing my issue.