added redstone interface

This commit is contained in:
2022-03-12 22:03:32 +01:00
parent 35be02dbe2
commit a75f86cbc1
4 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
package kernel.peripherals;
import util.Color;
typedef BundleMask = Color;
class Redstone implements IPeripheral {
private final addr:Side;
@:allow(kernel.peripherals)
private function new(side: Side) {
this.addr = side;
}
public function getAddr():String {
return this.addr;
}
public inline function setOutput(on:Bool):Void {
cc.Redstone.setOutput(this.addr,on);
}
public inline function getOutput(): Bool {
return cc.Redstone.getOutput(this.addr);
}
public inline function getInput(): Bool {
return cc.Redstone.getInput(this.addr);
}
public inline function setAnalogOutput(strength:Int): Void {
cc.Redstone.setAnalogOutput(this.addr,strength);
}
public inline function getAnalogOutput(): Int {
return cc.Redstone.getAnalogOutput(this.addr);
}
public inline function getAnalogInput(): Int {
return cc.Redstone.getAnalogInput(this.addr);
}
public inline function setBundledOutput(output: BundleMask) {
cc.Redstone.setBundledOutput(this.addr,output);
}
public inline function getBundledOutput():BundleMask {
return cc.Redstone.getBundledOutput(this.addr);
}
public inline function getBundledInput():BundleMask {
return cc.Redstone.getBundledInput(this.addr);
}
public inline function testBundledInput(mask: Color): Bool {
return cc.Redstone.testBundledInput(this.addr,mask);
}
}