initial commit
This commit is contained in:
91
src/kernel/MainTerm.hx
Normal file
91
src/kernel/MainTerm.hx
Normal file
@@ -0,0 +1,91 @@
|
||||
package kernel;
|
||||
|
||||
import util.Signal;
|
||||
import lib.TermWriteable;
|
||||
import cc.Term;
|
||||
import util.Vec.Vec2;
|
||||
import util.Color;
|
||||
|
||||
/**
|
||||
Represents the main computer screen.
|
||||
**/
|
||||
class MainTerm implements TermWriteable{
|
||||
public static final instance:MainTerm = new MainTerm();
|
||||
private function new() {
|
||||
KernelEvents.instance.on("term_resize",params ->{
|
||||
_onResize.emit(null);
|
||||
});
|
||||
}
|
||||
|
||||
public var onResize(get, null):SignalReadonly<Vec2<Int>>;
|
||||
private var _onResize:Signal<Vec2<Int>> = new Signal();
|
||||
|
||||
function get_onResize():SignalReadonly<Vec2<Int>> {
|
||||
return _onResize;
|
||||
}
|
||||
|
||||
public function write(text:String) {
|
||||
Term.write(text);
|
||||
}
|
||||
|
||||
public function scroll(y:Int) {
|
||||
Term.scroll(y);
|
||||
}
|
||||
|
||||
public function getCursorPos():Vec2<Int> {
|
||||
var rtn = Term.getCursorPos();
|
||||
return {
|
||||
x: rtn.x - 1,
|
||||
y: rtn.y - 1
|
||||
}
|
||||
}
|
||||
|
||||
public function setCursorPos(x:Int, y:Int) {
|
||||
Term.setCursorPos(x + 1,y + 1);
|
||||
}
|
||||
|
||||
public function getCursorBlink():Bool {
|
||||
// Missing in api
|
||||
throw new haxe.exceptions.NotImplementedException();
|
||||
}
|
||||
|
||||
public function setCursorBlink(blink:Bool) {
|
||||
Term.setCursorBlink(blink);
|
||||
}
|
||||
|
||||
public function getSize():Vec2<Int> {
|
||||
var rtn = Term.getSize();
|
||||
return {
|
||||
x: rtn.width,
|
||||
y: rtn.height,
|
||||
}
|
||||
}
|
||||
|
||||
public function clear() {
|
||||
Term.clear();
|
||||
}
|
||||
|
||||
public function clearLine() {
|
||||
Term.clearLine();
|
||||
}
|
||||
|
||||
public function getTextColor():Color {
|
||||
return ColorConvert.ccToColor(Term.getTextColor());
|
||||
}
|
||||
|
||||
public function setTextColor(colour:Color) {
|
||||
Term.setTextColor(ColorConvert.colorToCC(colour));
|
||||
}
|
||||
|
||||
public function getBackgroundColor():Color {
|
||||
return ColorConvert.ccToColor(Term.getBackgroundColor());
|
||||
}
|
||||
|
||||
public function setBackgroundColor(color:Color) {
|
||||
Term.setBackgroundColor(ColorConvert.colorToCC(color));
|
||||
}
|
||||
|
||||
public function isColor():Bool {
|
||||
return Term.isColor();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user