Add fluid container item converter (Volumetric flask, certus tank, universal cell, etc.)

https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/8807
This commit is contained in:
repo_alt 2021-11-10 12:23:23 +03:00
parent 1c2bf07dfa
commit 1a8d2732e1
4 changed files with 40 additions and 2 deletions

View File

@ -1,7 +1,7 @@
minecraft.version=1.7.10
forge.version=10.13.4.1614-1.7.10
oc.version=1.7.5.14-GTNH
oc.version=1.7.5.15-GTNH
ae2.version=rv3-beta-31
bc.version=7.0.9

View File

@ -0,0 +1,37 @@
package li.cil.oc.integration.vanilla
import java.util
import li.cil.oc.{Settings, api}
import net.minecraft.item
import net.minecraft.item.ItemStack
import net.minecraftforge.fluids
import net.minecraftforge.fluids.FluidStack
import scala.collection.convert.WrapAsScala._
object ConverterFluidContainerItem extends api.driver.Converter {
override def convert(value: AnyRef, output: util.Map[AnyRef, AnyRef]): Unit =
value match {
case stack: item.ItemStack => stack.getItem match {
case fc: fluids.IFluidContainerItem =>
output += "capacity" -> Int.box(fc.getCapacity(stack))
val fluidStack = fc.getFluid(stack)
if (fluidStack != null && fluidStack.getFluid != null) {
val fluid = fluidStack.getFluid
if (Settings.get.insertIdsInConverters)
output += "fluid_id" -> Int.box(fluid.getID)
output += "amount" -> Int.box(fluidStack.amount)
output += "fluid_hasTag" -> Boolean.box(fluidStack.tag != null)
if (fluid != null) {
output += "fluid_name" -> fluid.getName
output += "fluid_label" -> fluid.getLocalizedName(fluidStack)
}
}
else
output += "amount" -> Int.box(0)
case _ =>
}
case _ =>
}
}

View File

@ -8,7 +8,7 @@ import net.minecraftforge.fluids
import scala.collection.convert.WrapAsScala._
object ConverterFluidTankInfo extends api.driver.Converter {
override def convert(value: AnyRef, output: util.Map[AnyRef, AnyRef]) =
override def convert(value: AnyRef, output: util.Map[AnyRef, AnyRef]): Unit =
value match {
case tankInfo: fluids.FluidTankInfo =>
output += "capacity" -> Int.box(tankInfo.capacity)

View File

@ -45,6 +45,7 @@ object ModVanilla extends ModProxy with RedstoneProvider {
Driver.add(ConverterFluidStack)
Driver.add(ConverterFluidTankInfo)
Driver.add(ConverterFluidContainerItem)
Driver.add(ConverterItemStack)
Driver.add(ConverterNBT)
Driver.add(ConverterWorld)