Additional RecipeModifiers for KubeJS scripts, to enable custom machines and multiblocks to act like native machines and multiblocks.
AncientShotgun opened this issue · 0 comments
Cross-mod Integration
KubeJS, Rhino
Feature Description
Currently, adding native RecipeModifier
s that are not explicitly defined as RecipeModifier
object instances to KubeJS custom multiblocks and machines is difficult if not downright impossible. Rhino cannot recognize RecipeModifier
as a functional interface, and can therefore not convert 4-param 1-output methods such as GTRecipeModifiers.crackerOverclock
or GTRecipeModifiers.multiSmelterParallel
into RecipeModifier
instances. I have even tried script-level interface implementation à la
but this causes fatal NoSuchMethodError
s to be thrown as Rhino struggles to instantiate the implicit JavaAdapter
required to perform this task.
Is there an easier way/workaround to do this in JS? If there isn't, then I would like to request more RecipeModifier
s, such that packdevs can apply overclocking and parallelization modifiers from native machines and multiblocks to theirs.
In particular, it would be convenient to have:
- A
RecipeModifier
that performs equivalently toSimpleGeneratorMachine::recipeModifier
, but without the restriction of the metaMachine needing to be a simple generator (so generators of any size, single-block or multiblock, can use it). Implementing this one would also implicitly resolve both #1633 and #2015, if it works as I understand it to. - A
RecipeModifier
for each uniqueCoilWorkableElectricMultiblockMachine
-specificRecipeModifier
method. These will probably still need to keep their metaMachine restriction. - Maybe also an easier way for packmakers to create their own
RecipeModifier
s for deep custom functionality (stares pointedly at GT:NH waterline/Volcanus)
Many thanks in advance for taking this feature request into consideration.