blob: 2e20a0610e04aec35fda7160ace751ba289a1683 [file] [log] [blame] [raw]
package li.cil.oc.integration.bluepower
import com.bluepowermod.api.BPApi
import com.bluepowermod.api.connect.ConnectionType
import com.bluepowermod.api.connect.IConnectionCache
import com.bluepowermod.api.misc.MinecraftColor
import com.bluepowermod.api.wire.redstone.IBundledDevice
import li.cil.oc.common.tileentity.traits.BundledRedstoneAware
import net.minecraft.world.World
import net.minecraftforge.common.util.ForgeDirection
class BundledRedstoneDevice(val tileEntity: BundledRedstoneAware) extends IBundledDevice {
lazy val cache = BPApi.getInstance.getRedstoneApi.createBundledConnectionCache(this)
override def getX: Int = tileEntity.x
override def getY: Int = tileEntity.y
override def getZ: Int = tileEntity.z
override def getWorld: World = tileEntity.world
override def canConnect(side: ForgeDirection, dev: IBundledDevice, connectionType: ConnectionType): Boolean = tileEntity.isOutputEnabled
override def isNormalFace(side: ForgeDirection): Boolean = true
override def getBundledConnectionCache: IConnectionCache[_ <: IBundledDevice] = cache
override def getBundledColor(side: ForgeDirection): MinecraftColor = MinecraftColor.ANY
override def getBundledOutput(side: ForgeDirection): Array[Byte] = tileEntity.bundledOutput(side).map(_.toByte)
override def getBundledPower(side: ForgeDirection): Array[Byte] = tileEntity.bundledInput(side).map(_.toByte)
override def setBundledPower(side: ForgeDirection, power: Array[Byte]): Unit = tileEntity.bundledInput(side, power.map(_ & 0xFF))
override def onBundledUpdate(): Unit = tileEntity.checkRedstoneInputChanged()
}