mirror of
https://github.com/GTNewHorizons/NotEnoughItems.git
synced 2026-11-15 09:44:44 +00:00
* Update build script * Update build script to import fix for shadow in dev and sources artifacts * Update fixed build script to shadow csv dependency in dev jar as well * Moved jitpack * Move new files
53 lines
1.3 KiB
Java
53 lines
1.3 KiB
Java
package codechicken.nei;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.LinkedList;
|
|
import java.util.Map.Entry;
|
|
|
|
/**
|
|
* Good old down/held/up keystate tracker
|
|
*/
|
|
public class KeyManager
|
|
{
|
|
public static interface IKeyStateTracker
|
|
{
|
|
public void tickKeyStates();
|
|
}
|
|
|
|
public static class KeyState
|
|
{
|
|
public boolean down;
|
|
public boolean held;
|
|
public boolean up;
|
|
}
|
|
|
|
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())
|
|
{
|
|
int keyCode = NEIClientConfig.getKeyBinding(entry.getKey());
|
|
boolean down = keyCode != 0 && Keyboard.isKeyDown(keyCode);
|
|
KeyState state = entry.getValue();
|
|
if(down)
|
|
{
|
|
state.down = !state.held;
|
|
state.up = false;
|
|
}
|
|
else
|
|
{
|
|
state.up = state.held;
|
|
state.down = false;
|
|
}
|
|
state.held = down;
|
|
}
|
|
|
|
for(IKeyStateTracker tracker : trackers)
|
|
tracker.tickKeyStates();
|
|
}
|
|
}
|