mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-09 15:25:56 -04:00
add fluid container item, close #3533
This commit is contained in:
parent
365e096592
commit
93740773cc
@ -1,5 +1,6 @@
|
||||
## Fixes/improvements
|
||||
|
||||
* [#3533] Added support for observing the contents of fluid container items.
|
||||
* [#3620] Fixed OC 1.8.0+ regression involving API arguments and numbers.
|
||||
* [#3013] Fixed rare server-side deadlock when sending disk activity update packets.
|
||||
|
||||
@ -10,4 +11,4 @@
|
||||
|
||||
## List of contributors
|
||||
|
||||
asie, ds84182, Possseidon
|
||||
asie, ds84182, Possseidon, repo-alt
|
||||
|
@ -0,0 +1,29 @@
|
||||
package li.cil.oc.integration.vanilla
|
||||
|
||||
import li.cil.oc.server.driver.Registry
|
||||
import li.cil.oc.{Settings, api}
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraftforge.fluids.IFluidContainerItem
|
||||
|
||||
import java.util
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
|
||||
object ConverterFluidContainerItem extends api.driver.Converter {
|
||||
override def convert(value: scala.Any, output: util.Map[AnyRef, AnyRef]) =
|
||||
value match {
|
||||
case stack: ItemStack => stack.getItem match {
|
||||
case fc: IFluidContainerItem =>
|
||||
output += "capacity" -> Int.box(fc.getCapacity(stack))
|
||||
val fluidStack = fc.getFluid(stack)
|
||||
if (fluidStack != null) {
|
||||
output += "fluid" -> Registry.convert(Array[AnyRef](fluidStack))(0)
|
||||
} else {
|
||||
val fluidMap = new util.HashMap[AnyRef, AnyRef]()
|
||||
fluidMap += "amount" -> Int.box(0)
|
||||
output += "fluid" -> fluidMap
|
||||
}
|
||||
case _ =>
|
||||
}
|
||||
case _ =>
|
||||
}
|
||||
}
|
@ -43,6 +43,7 @@ object ModVanilla extends ModProxy with RedstoneProvider {
|
||||
Driver.add(DriverCommandBlock)
|
||||
}
|
||||
|
||||
Driver.add(ConverterFluidContainerItem)
|
||||
Driver.add(ConverterFluidStack)
|
||||
Driver.add(ConverterFluidTankInfo)
|
||||
Driver.add(ConverterItemStack)
|
||||
|
Loading…
x
Reference in New Issue
Block a user