KeyManager.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package me.km.networking;
  2. import net.minecraft.client.settings.KeyBinding;
  3. import net.minecraftforge.fml.client.registry.ClientRegistry;
  4. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  5. import net.minecraftforge.fml.common.gameevent.TickEvent;
  6. import net.minecraftforge.fml.relauncher.Side;
  7. import net.minecraftforge.fml.relauncher.SideOnly;
  8. import org.lwjgl.input.Keyboard;
  9. @SideOnly(Side.CLIENT)
  10. public class KeyManager
  11. {
  12. private KeyBinding[] functionKeys;
  13. public KeyManager()
  14. {
  15. functionKeys = new KeyBinding[9];
  16. functionKeys[0] = register(1, Keyboard.KEY_G);
  17. functionKeys[1] = register(2, Keyboard.KEY_H);
  18. functionKeys[2] = register(3, Keyboard.KEY_J);
  19. functionKeys[3] = register(4, Keyboard.KEY_K);
  20. functionKeys[4] = register(5, Keyboard.KEY_V);
  21. functionKeys[5] = register(6, Keyboard.KEY_B);
  22. functionKeys[6] = register(7, Keyboard.KEY_N);
  23. functionKeys[7] = register(8, Keyboard.KEY_M);
  24. functionKeys[8] = register(9, Keyboard.KEY_COMMA);
  25. }
  26. private KeyBinding register(int id, int key)
  27. {
  28. KeyBinding keyBind = new KeyBinding("key.function." + id, key, "key.km.function");
  29. ClientRegistry.registerKeyBinding(keyBind);
  30. return keyBind;
  31. }
  32. private int getFirstPressedKey()
  33. {
  34. for(int i = 0; i < 9; i++)
  35. {
  36. if(functionKeys[i].isPressed())
  37. {
  38. return i + 1;
  39. }
  40. }
  41. return -1;
  42. }
  43. @SubscribeEvent
  44. public void onRenderGui(TickEvent.ClientTickEvent e)
  45. {
  46. int key = getFirstPressedKey();
  47. if(key != -1)
  48. {
  49. ModPacketHandler.sendFunctionKey(key);
  50. }
  51. }
  52. }