Ability to transform input Itemstack(s) in a machine's input inventory during a processing iteration without removing them from the input inventory.
AncientShotgun opened this issue ยท 0 comments
Cross-mod Integration
KubeJS
Feature Description
The feature I would like to request is:
The ability to transform one or more input ItemStack
s, mainly non-consumable and chanced consumable inputs, without removing them from the input inventory of the machine, define when during the processing iteration the transformation should take place, and for the transformation to work with parallelization so the option for the transformation to take place as many times that the processing iteration was parallelized is available. I would also like for this feature to be usable in KubeJS scripting when defining recipes, so the logic for this feature would, if I had to guess, be defined in the GTRecipe
class, then referenced in the GTRecipeSchema
class (I only partially know my way around your codebase).
Example 1: A similar process to tools taking damage and eventually breaking as the player microcrafts with them, but performed inside a machine's input inventory and not exclusively limited to damaging and breaking items with durability. Replacing items with others must also be possible (electric tools do this when their tool heads break). Essentially, any IngredientAction
that KubeJS can apply to a crafting recipe ingredient should be able to be allowed to be applied to input items in a GTRecipe
.
Example 2: An illustrative example for this feature would be the ExxonMobil Chemical Plant multiblock from GTNH. This multiblock has a special ability predicate exclusively for its own use that represents a special bus in which a recipe catalyst may be placed. As the multiblock runs certain recipes, this catalyst is damaged (at random, depending on the tiering/parallelization of the multiblock) but it is only consumed when its damage value reaches 0 and it breaks. I would like behavior similar to this to happen, but once again not limited to damage and breaking of items with durability, and performed on the input bus/inventory.
The feature should also respect distinct-bus settings in a multiblock, should they already be implemented.