blob: 7b526bd59d3f2d32694c35e85e29208ef2d54a1a [file] [log] [blame] [raw]
package li.cil.oc.integration.util
import net.minecraft.item.ItemStack
object GregTech {
private val (recipeAdder, addAssemblerRecipe) = try {
val api = Class.forName("gregtech.api.GregTech_API")
val recipeAdder = api.getField("sRecipeAdder").get(null)
val addAssemblerRecipe = recipeAdder.getClass.getMethod("addAssemblerRecipe", classOf[ItemStack], classOf[ItemStack], classOf[ItemStack], classOf[Int], classOf[Int])
(Option(recipeAdder), Option(addAssemblerRecipe))
}
catch {
case _: Throwable => (None, None)
}
def available = recipeAdder.isDefined && addAssemblerRecipe.isDefined
def addAssemblerRecipe(input1: ItemStack, input2: ItemStack, output: ItemStack, duration: Int, euPerTick: Int) {
(recipeAdder, addAssemblerRecipe) match {
case (Some(instance), Some(method)) => method.invoke(instance, input1, input2, output, Int.box(duration), Int.box(euPerTick))
case _ =>
}
}
}