diff --git a/src/main/scala/li/cil/oc/integration/Mods.scala b/src/main/scala/li/cil/oc/integration/Mods.scala index 85c8f1f3b..cd7485968 100644 --- a/src/main/scala/li/cil/oc/integration/Mods.scala +++ b/src/main/scala/li/cil/oc/integration/Mods.scala @@ -63,6 +63,7 @@ object Mods { val ProjectRedTransmission = new SimpleMod(IDs.ProjectRedTransmission) val Railcraft = new SimpleMod(IDs.Railcraft) val RedLogic = new SimpleMod(IDs.RedLogic) + val RotaryCraft = new SimpleMod(IDs.RotaryCraft) val StargateTech2 = new ModBase { def id = IDs.StargateTech2 @@ -115,6 +116,7 @@ object Mods { integration.projectred.ModProjectRed, integration.railcraft.ModRailcraft, integration.redlogic.ModRedLogic, + integration.rotarycraft.ModRotaryCraft, integration.stargatetech2.ModStargateTech2, integration.thaumcraft.ModThaumcraft, integration.thermalexpansion.ModThermalExpansion, @@ -204,6 +206,7 @@ object Mods { final val ProjectRedTransmission = "ProjRed|Transmission" final val Railcraft = "Railcraft" final val RedLogic = "RedLogic" + final val RotaryCraft = "RotaryCraft" final val StargateTech2 = "StargateTech2" final val Thaumcraft = "Thaumcraft" final val ThermalExpansion = "ThermalExpansion" diff --git a/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterJetpackItem.java b/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterJetpackItem.java new file mode 100644 index 000000000..c92721e07 --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterJetpackItem.java @@ -0,0 +1,50 @@ +package li.cil.oc.integration.rotarycraft; + + +import cpw.mods.fml.common.registry.GameRegistry; +import li.cil.oc.api.driver.Converter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import java.util.HashMap; +import java.util.Map; + +public class ConverterJetpackItem implements Converter { + @Override + public void convert(final Object value, final Map output) { + if (value instanceof ItemStack) { + final ItemStack stack = (ItemStack) value; + final Item item = stack.getItem(); + if (item.equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_bedpack")) || + item.equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_steelpack")) || + item.equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_jetpack"))) { + final NBTTagCompound tag = stack.getTagCompound(); + + if (tag != null && tag.hasKey("fuel")) + output.put("fuel", stack.stackTagCompound.getInteger("fuel")); + else + output.put("fuel", 0); + + if (tag != null && tag.hasKey("liquid")) { + output.put("fuelType", tag.getString("liquid")); + } else { + output.put("fuelType", "empty"); + } + + if (item.equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_bedpack"))) + output.put("chestplateMaterial", "bedrock"); + else if (item.equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_steelpack"))) + output.put("chestplateMaterial", "steel"); + else + output.put("chestplateMaterial", "none"); + + final HashMap upgrades = new HashMap(); + upgrades.put("cooling", tag != null ? tag.getBoolean("cooling") : false); + upgrades.put("thrustBoost", tag != null ? tag.getBoolean("jet") : false); + upgrades.put("winged", tag != null ? tag.getBoolean("wing") : false); + output.put("upgrades", upgrades); + } + } + } +} diff --git a/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterPumpItem.java b/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterPumpItem.java new file mode 100644 index 000000000..06d64f29f --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/rotarycraft/ConverterPumpItem.java @@ -0,0 +1,31 @@ +package li.cil.oc.integration.rotarycraft; + +import cpw.mods.fml.common.registry.GameRegistry; +import li.cil.oc.api.driver.Converter; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +import java.util.Map; + +public class ConverterPumpItem implements Converter { + @Override + public void convert(final Object value, final Map output) { + if (value instanceof ItemStack) { + final ItemStack stack = (ItemStack) value; + final Item item = stack.getItem(); + if (stack.getItem().equals(GameRegistry.findItem("RotaryCraft", "rotarycraft_item_pump"))) { + final NBTTagCompound tag = stack.getTagCompound(); + if (tag != null && tag.hasKey("liquid")) + output.put("liquid", stack.stackTagCompound.getString("liquid")); + else + output.put("liquid", "empty"); + + if (tag != null && tag.hasKey("lvl")) + output.put("fluidAmount", stack.stackTagCompound.getInteger("lvl")); + else + output.put("fluidAmount", 0); + } + } + } +} diff --git a/src/main/scala/li/cil/oc/integration/rotarycraft/ModRotaryCraft.scala b/src/main/scala/li/cil/oc/integration/rotarycraft/ModRotaryCraft.scala new file mode 100644 index 000000000..cefb3f3de --- /dev/null +++ b/src/main/scala/li/cil/oc/integration/rotarycraft/ModRotaryCraft.scala @@ -0,0 +1,13 @@ +package li.cil.oc.integration.rotarycraft + +import li.cil.oc.api.Driver +import li.cil.oc.integration.{ModProxy, Mods} + +object ModRotaryCraft extends ModProxy { + override def getMod = Mods.RotaryCraft + + override def initialize() { + Driver.add(new ConverterJetpackItem) + Driver.add(new ConverterPumpItem) + } +} \ No newline at end of file