| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package arm.node.brush;
- import iron.math.Vec4;
- @:keep
- class InputNode extends LogicNode {
- var coords = new Vec4();
- var startX = 0.0;
- var startY = 0.0;
- // Brush ruler
- var lockBegin = false;
- var lockX = false;
- var lockY = false;
- var lockStartX = 0.0;
- var lockStartY = 0.0;
- public function new(tree: LogicTree) {
- super(tree);
- tree.notifyOnUpdate(function() {
- if (arm.ui.UITrait.inst.splitView) {
- arm.ui.UITrait.inst.viewIndex = iron.system.Input.getMouse().viewX > arm.App.w() / 2 ? 1 : 0;
- }
- var mouse = iron.system.Input.getMouse();
- coords.x = mouse.viewX / iron.App.w();
- coords.y = mouse.viewY / iron.App.h();
- if (mouse.started()) {
- startX = mouse.viewX / iron.App.w();
- startY = mouse.viewY / iron.App.h();
- }
- var pen = iron.system.Input.getPen();
- if (pen.down()) {
- coords.x = pen.viewX / iron.App.w();
- coords.y = pen.viewY / iron.App.h();
- }
- if (pen.started()) {
- startX = pen.viewX / iron.App.w();
- startY = pen.viewY / iron.App.h();
- }
- if (arm.ui.UITrait.inst.splitView) {
- arm.ui.UITrait.inst.viewIndex = -1;
- }
- if (lockBegin) {
- var dx = Math.abs(lockStartX - mouse.viewX);
- var dy = Math.abs(lockStartY - mouse.viewY);
- if (dx > 1 || dy > 1) {
- lockBegin = false;
- if (dx > dy) lockY = true;
- else lockX = true;
- }
- }
- var kb = iron.system.Input.getKeyboard();
- if (kb.started(Config.keymap.brush_ruler)) { lockStartX = mouse.viewX; lockStartY = mouse.viewY; lockBegin = true; }
- else if (kb.released(Config.keymap.brush_ruler)) { lockX = lockY = lockBegin = false; }
- if (lockX) coords.x = startX;
- if (lockY) coords.y = startY;
- });
- }
- override function get(from: Int): Dynamic {
- return coords;
- }
- }
|