blob: 67a0a0400fe8ca06642034ac395df0601414001c [file] [log] [blame] [raw]
package li.cil.oc.server.component
import li.cil.oc.api
import li.cil.oc.api.network.environment.LuaCallback
import li.cil.oc.api.network.{Visibility, Message}
import net.minecraftforge.common.ForgeDirection
class RedstoneCard extends ManagedComponent {
val node = api.Network.createComponent(api.Network.createNode(this, "redstone", Visibility.Neighbors))
@LuaCallback(value = "getInput", asynchronous = true)
def getInput(message: Message): Array[Object] = {
val side = message.checkInteger(1)
node.network.sendToAddress(node, message.source.address,
"redstone.input", ForgeDirection.getOrientation(side))
}
@LuaCallback(value = "getOutput", asynchronous = true)
def getOutput(message: Message): Array[Object] = {
val side = message.checkInteger(1)
node.network.sendToAddress(node, message.source.address,
"redstone.output", ForgeDirection.getOrientation(side))
}
@LuaCallback("setOutput")
def setOutput(message: Message): Array[Object] = {
val side = message.checkInteger(1)
val value = message.checkInteger(2)
node.network.sendToAddress(node, message.source.address,
"redstone.output=", ForgeDirection.getOrientation(side.toInt), Int.box(value))
}
}