added redstone interface
This commit is contained in:
60
src/kernel/peripherals/Redstone.hx
Normal file
60
src/kernel/peripherals/Redstone.hx
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user