mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 02:39:48 -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.machine.Context
|
||||||
import li.cil.oc.api.network._
|
import li.cil.oc.api.network._
|
||||||
import li.cil.oc.common.tileentity.traits.RedstoneAware
|
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
|
import net.minecraftforge.common.util.ForgeDirection
|
||||||
|
|
||||||
trait RedstoneVanilla extends RedstoneSignaller {
|
trait RedstoneVanilla extends RedstoneSignaller {
|
||||||
@ -36,6 +39,20 @@ trait RedstoneVanilla extends RedstoneSignaller {
|
|||||||
result(redstone.output(side))
|
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 = {
|
override def onMessage(message: Message): Unit = {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package li.cil.oc.util
|
package li.cil.oc.util
|
||||||
|
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection
|
||||||
import net.minecraftforge.fluids.IFluidBlock
|
import net.minecraftforge.fluids.IFluidBlock
|
||||||
|
|
||||||
import scala.language.implicitConversions
|
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 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 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)
|
implicit def extendedFluidBlock(block: IFluidBlock): ExtendedFluidBlock = new ExtendedFluidBlock(block)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user