Key.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package me.hammerle.snuviengine.api;
  2. public final class Key {
  3. private boolean down = false;
  4. private int time = 0;
  5. private boolean released = false;
  6. private int key;
  7. private boolean rebinding = false;
  8. private String name = null;
  9. protected Key(int key) {
  10. this.key = key;
  11. }
  12. public boolean isRebinding() {
  13. return rebinding;
  14. }
  15. public String getName() {
  16. if(name == null) {
  17. name = KeyNames.getName(key);
  18. }
  19. return name;
  20. }
  21. protected void setRebinding(boolean b) {
  22. rebinding = b;
  23. }
  24. protected void press() {
  25. down = true;
  26. }
  27. protected void release() {
  28. released = true;
  29. }
  30. protected void tick() {
  31. if(down) {
  32. time++;
  33. down = !released;
  34. } else if(released) {
  35. released = false;
  36. time = 0;
  37. }
  38. }
  39. public boolean isReleased() {
  40. return released;
  41. }
  42. public boolean isDown() {
  43. return down;
  44. }
  45. public int getTime() {
  46. return time;
  47. }
  48. public void setTime(int time) {
  49. this.time = time;
  50. }
  51. protected void setKey(int key) {
  52. this.key = key;
  53. name = null;
  54. }
  55. public int getKey() {
  56. return key;
  57. }
  58. }