From 14097bda5fee304ec0214ab9f0762ea36caa7cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sat, 11 Oct 2014 13:26:43 +0200 Subject: [PATCH] Added converter for MFR safari nets, adds name of contained entity. --- .../scala/li/cil/oc/integration/Mods.scala | 2 ++ .../integration/mfr/ConverterSafariNet.scala | 29 +++++++++++++++++++ .../mfr/ModMineFactoryReloaded.scala | 13 +++++++++ 3 files changed, 44 insertions(+) create mode 100644 src/main/scala/li/cil/oc/integration/mfr/ConverterSafariNet.scala create mode 100644 src/main/scala/li/cil/oc/integration/mfr/ModMineFactoryReloaded.scala diff --git a/src/main/scala/li/cil/oc/integration/Mods.scala b/src/main/scala/li/cil/oc/integration/Mods.scala index 6620c7290..32e6838be 100644 --- a/src/main/scala/li/cil/oc/integration/Mods.scala +++ b/src/main/scala/li/cil/oc/integration/Mods.scala @@ -16,6 +16,7 @@ import li.cil.oc.integration.fmp.ModForgeMultipart import li.cil.oc.integration.forestry.ModForestry import li.cil.oc.integration.gregtech.ModGregtech import li.cil.oc.integration.ic2.ModIndustrialCraft2 +import li.cil.oc.integration.mfr.ModMineFactoryReloaded import li.cil.oc.integration.mystcraft.ModMystcraft import li.cil.oc.integration.opencomputers.ModOpenComputers import li.cil.oc.integration.railcraft.ModRailcraft @@ -105,6 +106,7 @@ object Mods { integrate(ModForgeMultipart) integrate(ModGregtech) integrate(ModIndustrialCraft2) + integrate(ModMineFactoryReloaded) integrate(ModMystcraft) integrate(ModOpenComputers) integrate(ModRailcraft) diff --git a/src/main/scala/li/cil/oc/integration/mfr/ConverterSafariNet.scala b/src/main/scala/li/cil/oc/integration/mfr/ConverterSafariNet.scala new file mode 100644 index 000000000..39d453937 --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/mfr/ConverterSafariNet.scala @@ -0,0 +1,29 @@ +package li.cil.oc.integration.mfr + +import java.util + +import li.cil.oc.api.driver.Converter +import net.minecraft.item.Item +import net.minecraft.item.ItemStack +import net.minecraftforge.common.util.Constants.NBT + +import scala.collection.convert.WrapAsScala._ + +object ConverterSafariNet extends Converter { + private val SafariNetNames = Set( + "MineFactoryReloaded:item.mfr.safarinet.reusable", + "MineFactoryReloaded:item.mfr.safarinet.singleuse", + "MineFactoryReloaded:item.mfr.safarinet.jailer") + + override def convert(value: scala.Any, output: util.Map[AnyRef, AnyRef]) = value match { + case stack: ItemStack => + val name = Item.itemRegistry.getNameForObject(stack.getItem) + if (SafariNetNames.contains(name)) { + val nbt = stack.getTagCompound + if (nbt.hasKey("id", NBT.TAG_STRING) && !nbt.getBoolean("hide")) { + output += "entity" -> nbt.getString("id") + } + } + case _ => + } +} diff --git a/src/main/scala/li/cil/oc/integration/mfr/ModMineFactoryReloaded.scala b/src/main/scala/li/cil/oc/integration/mfr/ModMineFactoryReloaded.scala new file mode 100644 index 000000000..1763dce54 --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/mfr/ModMineFactoryReloaded.scala @@ -0,0 +1,13 @@ +package li.cil.oc.integration.mfr + +import li.cil.oc.api.Driver +import li.cil.oc.integration.ModProxy +import li.cil.oc.integration.Mods + +object ModMineFactoryReloaded extends ModProxy { + override def getMod = Mods.MineFactoryReloaded + + override def initialize() { + Driver.add(ConverterSafariNet) + } +}