KeyManager.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package me.km.networking;
  2. import net.minecraft.client.settings.KeyBinding;
  3. import net.minecraftforge.fml.client.registry.ClientRegistry;
  4. import net.minecraftforge.event.TickEvent;
  5. import net.minecraftforge.api.distmarker.Dist;
  6. import net.minecraftforge.api.distmarker.OnlyIn;
  7. import net.minecraftforge.eventbus.api.SubscribeEvent;
  8. import org.lwjgl.glfw.GLFW;
  9. @OnlyIn(Dist.CLIENT)
  10. public class KeyManager {
  11. private final KeyBinding[] functionKeys;
  12. public KeyManager() {
  13. functionKeys = new KeyBinding[9];
  14. functionKeys[0] = register(1, GLFW.GLFW_KEY_G);
  15. functionKeys[1] = register(2, GLFW.GLFW_KEY_H);
  16. functionKeys[2] = register(3, GLFW.GLFW_KEY_J);
  17. functionKeys[3] = register(4, GLFW.GLFW_KEY_K);
  18. functionKeys[4] = register(5, GLFW.GLFW_KEY_V);
  19. functionKeys[5] = register(6, GLFW.GLFW_KEY_B);
  20. functionKeys[6] = register(7, GLFW.GLFW_KEY_N);
  21. functionKeys[7] = register(8, GLFW.GLFW_KEY_M);
  22. functionKeys[8] = register(9, GLFW.GLFW_KEY_COMMA);
  23. }
  24. public String getKeyDescription(int index) {
  25. return functionKeys[index].func_238171_j_().getString();
  26. }
  27. private KeyBinding register(int id, int key) {
  28. KeyBinding keyBind = new KeyBinding("key.function." + id, key, "key.km.function");
  29. ClientRegistry.registerKeyBinding(keyBind);
  30. return keyBind;
  31. }
  32. @SubscribeEvent
  33. public void onRenderGui(TickEvent.ClientTickEvent e) {
  34. for(int i = 0; i < functionKeys.length; i++) {
  35. if(functionKeys[i].isPressed()) {
  36. ModPacketHandler.sendFunctionKey(i + 1);
  37. }
  38. }
  39. }
  40. }