package me.hammerle.snuviengine.api; public final class Key { private boolean down = false; private int time = 0; private boolean released = false; private int key; private boolean rebinding = false; private String name = null; protected Key(int key) { this.key = key; } public boolean isRebinding() { return rebinding; } public String getName() { if(name == null) { name = KeyNames.getName(key); } return name; } protected void setRebinding(boolean b) { rebinding = b; } protected void press() { down = true; } protected void release() { released = true; } protected void tick() { if(down) { time++; down = !released; } else if(released) { released = false; time = 0; } } public boolean isReleased() { return released; } public boolean isDown() { return down; } public int getTime() { return time; } public void setTime(int time) { this.time = time; } protected void setKey(int key) { this.key = key; name = null; } public int getKey() { return key; } }