I want to make a recipe which is unfortunately kind of complex, and I'm not sure how to, or if there is a way to implement it.
Here's the items it uses:
souls:soulbook { EntityTag: { id: string }, ContainedEssence: byte }
souls:essence { EntityTag: { id: string } }
The recipe should be shapeless and take the soulbook and one essence. The recipe should only work if the soulbook.EntityTag.id equals the essence.EntityTag.id, and it should produce a soulbook with its ContainedEssence increased by 1.
To make this work I would need some kind of custom recipe. I would have to override the method that checks if items are valid in a recipe, to check for these items, and then override the result as well.
Is this even possible? Should I look into adding a GUI for my soulbook item?