InputNode.hx 916 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package arm.logicnode;
  2. import armory.logicnode.LogicNode;
  3. import armory.logicnode.LogicTree;
  4. import armory.math.Vec4;
  5. @:keep
  6. class InputNode extends LogicNode {
  7. var coords = new Vec4();
  8. var startX = 0.0;
  9. var startY = 0.0;
  10. var lockX = false;
  11. var lockY = false;
  12. public function new(tree:LogicTree) {
  13. super(tree);
  14. tree.notifyOnUpdate(function() {
  15. var mouse = armory.system.Input.getMouse();
  16. coords.x = mouse.x / iron.App.w();
  17. coords.y = mouse.y / iron.App.h();
  18. if (mouse.started()) {
  19. startX = mouse.x / iron.App.w();
  20. startY = mouse.y / iron.App.h();
  21. }
  22. var pen = armory.system.Input.getPen();
  23. if (pen.down()) {
  24. coords.x = pen.x / iron.App.w();
  25. coords.y = pen.y / iron.App.h();
  26. }
  27. var kb = iron.system.Input.getKeyboard();
  28. lockY = kb.down("shift");
  29. if (lockY) coords.y = startY;
  30. });
  31. }
  32. override function get(from:Int):Dynamic {
  33. return coords;
  34. }
  35. }