GT Assembly line recipe reading

This commit is contained in:
repo_alt 2020-06-07 00:38:20 +03:00
parent 350784c38d
commit a5a9976a8c

View File

@ -4,11 +4,13 @@ import java.util
import li.cil.oc.api.driver.Converter import li.cil.oc.api.driver.Converter
import net.minecraft.item.ItemStack import net.minecraft.item.ItemStack
import net.minecraft.nbt.{NBTTagCompound, NBTTagList, NBTTagString} import net.minecraft.nbt.{NBTTagCompound, NBTTagString}
import li.cil.oc.util.ExtendedNBT._ import li.cil.oc.util.ExtendedNBT._
import net.minecraftforge.common.util.Constants.NBT import net.minecraftforge.common.util.Constants.NBT
import net.minecraftforge.fluids.FluidStack
import scala.collection.convert.WrapAsScala._ import scala.collection.convert.WrapAsScala._
import scala.collection.mutable.ArrayBuffer
class ConverterDataStick extends Converter { class ConverterDataStick extends Converter {
override def convert(value: Any, output: util.Map[AnyRef, AnyRef]): Unit = if (value.isInstanceOf[ItemStack]) { override def convert(value: Any, output: util.Map[AnyRef, AnyRef]): Unit = if (value.isInstanceOf[ItemStack]) {
@ -25,6 +27,26 @@ class ConverterDataStick extends Converter {
} }
case _ => case _ =>
} }
else if (nbt.hasKey("author") && nbt.getString("author") == "Assembling Line Recipe Generator" && nbt.hasKey("output")) {
val outputItem = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("output"))
output += "output" -> outputItem.getDisplayName
output += "time" -> nbt.getInteger("time").toString
output += "eu" -> nbt.getInteger("eu").toString
val inputs = new ArrayBuffer[ItemStack]()
var index = 0
while (nbt.hasKey(index.toString)) {
inputs += ItemStack.loadItemStackFromNBT(nbt.getCompoundTag(index.toString))
index += 1
}
output += "inputItems" -> inputs.map((s:ItemStack) => s.getDisplayName -> s.stackSize)
index = 0
val inputFluids = new ArrayBuffer[FluidStack]()
while (nbt.hasKey("f" + index)) {
inputFluids += FluidStack.loadFluidStackFromNBT(nbt.getCompoundTag("f" + index))
index += 1
}
output += "inputFluids" -> inputFluids.map((s:FluidStack) => s.getLocalizedName -> s.amount)
}
} }
def getRawProspectionData(output: util.Map[AnyRef, AnyRef], nbt: NBTTagCompound) = def getRawProspectionData(output: util.Map[AnyRef, AnyRef], nbt: NBTTagCompound) =
output += "Raw Prospection Data" -> Map( output += "Raw Prospection Data" -> Map(
@ -33,6 +55,6 @@ class ConverterDataStick extends Converter {
"prospection_ores" -> nbt.getString("prospection_ores").split('|'), "prospection_ores" -> nbt.getString("prospection_ores").split('|'),
"prospection_oils" -> nbt.getString("prospection_oils").split('|'), "prospection_oils" -> nbt.getString("prospection_oils").split('|'),
"prospection_oils_pos" -> nbt.getString("prospection_oils_pos"), "prospection_oils_pos" -> nbt.getString("prospection_oils_pos"),
"prospection_radius" -> Integer.parseInt(nbt.getString("prospection_radius")) "prospection_radius" -> nbt.getString("prospection_radius")
) )
} }