mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 10:21:45 -04:00
Added getComparatorInput
to redstone component. Closes #1488.
This commit is contained in:
parent
da10c249c6
commit
bdcb86a219
@ -7,6 +7,9 @@ import li.cil.oc.api.machine.Callback
|
||||
import li.cil.oc.api.machine.Context
|
||||
import li.cil.oc.api.network._
|
||||
import li.cil.oc.common.tileentity.traits.RedstoneAware
|
||||
import li.cil.oc.util.BlockPosition
|
||||
import li.cil.oc.util.ExtendedWorld._
|
||||
import li.cil.oc.util.ExtendedBlock._
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
trait RedstoneVanilla extends RedstoneSignaller {
|
||||
@ -36,6 +39,20 @@ trait RedstoneVanilla extends RedstoneSignaller {
|
||||
result(redstone.output(side))
|
||||
}
|
||||
|
||||
@Callback(direct = true, doc = """function(side:number):number -- Get the comparator input on the specified side.""")
|
||||
def getComparatorInput(context: Context, args: Arguments): Array[AnyRef] = {
|
||||
val side = checkSide(args, 0)
|
||||
val blockPos = BlockPosition(redstone).offset(side)
|
||||
if (redstone.world.blockExists(blockPos)) {
|
||||
val block = redstone.world.getBlock(blockPos)
|
||||
if (block.hasComparatorInputOverride) {
|
||||
val comparatorOverride = block.getComparatorInputOverride(blockPos, side.getOpposite)
|
||||
return result(comparatorOverride)
|
||||
}
|
||||
}
|
||||
result(0)
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def onMessage(message: Message): Unit = {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package li.cil.oc.util
|
||||
|
||||
import net.minecraft.block.Block
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
import net.minecraftforge.fluids.IFluidBlock
|
||||
|
||||
import scala.language.implicitConversions
|
||||
@ -19,6 +20,8 @@ object ExtendedBlock {
|
||||
def getSelectedBoundingBoxFromPool(position: BlockPosition) = block.getSelectedBoundingBoxFromPool(position.world.get, position.x, position.y, position.z)
|
||||
|
||||
def getCollisionBoundingBoxFromPool(position: BlockPosition) = block.getCollisionBoundingBoxFromPool(position.world.get, position.x, position.y, position.z)
|
||||
|
||||
def getComparatorInputOverride(position: BlockPosition, side: ForgeDirection) = block.getComparatorInputOverride(position.world.get, position.x, position.y, position.z, side.ordinal())
|
||||
}
|
||||
|
||||
implicit def extendedFluidBlock(block: IFluidBlock): ExtendedFluidBlock = new ExtendedFluidBlock(block)
|
||||
|
Loading…
x
Reference in New Issue
Block a user