Files
NotEnoughItems/src/main/java/codechicken/nei/KeyManager.java
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

47 lines
1.2 KiB
Java
Raw Normal View History

2014-04-29 10:54:20 +10:00
package codechicken.nei;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map.Entry;
2025-08-22 15:12:42 +03:00
import org.lwjgl.input.Keyboard;
2014-04-29 10:54:20 +10:00
/**
* Good old down/held/up keystate tracker
*/
public class KeyManager {
public static interface IKeyStateTracker {
2014-04-29 10:54:20 +10:00
public void tickKeyStates();
}
public static class KeyState {
2014-04-29 10:54:20 +10:00
public boolean down;
public boolean held;
public boolean up;
}
2019-12-30 20:19:16 -08:00
public static HashMap<String, KeyState> keyStates = new HashMap<>();
public static LinkedList<IKeyStateTracker> trackers = new LinkedList<>();
public static void tickKeyStates() {
for (Entry<String, KeyState> entry : keyStates.entrySet()) {
2025-08-22 15:12:42 +03:00
final boolean down = Keyboard.isKeyDown(NEIClientConfig.getKeyBinding(entry.getKey()));
final KeyState state = entry.getValue();
if (down) {
2014-04-29 10:54:20 +10:00
state.down = !state.held;
state.up = false;
} else {
2014-04-29 10:54:20 +10:00
state.up = state.held;
state.down = false;
}
2014-04-29 10:54:20 +10:00
state.held = down;
}
for (IKeyStateTracker tracker : trackers) tracker.tickKeyStates();
2014-04-29 10:54:20 +10:00
}
}