75 lines
3.6 KiB
Java
75 lines
3.6 KiB
Java
package net.machinemuse.powersuits.control;
|
|
|
|
import cpw.mods.fml.client.registry.ClientRegistry;
|
|
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
|
import cpw.mods.fml.common.gameevent.InputEvent;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.machinemuse.powersuits.common.ModularPowersuits;
|
|
import net.machinemuse.powersuits.item.ModeChangingModularItem$;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.entity.EntityClientPlayerMP;
|
|
import net.minecraft.client.settings.KeyBinding;
|
|
import net.minecraft.world.World;
|
|
import org.lwjgl.input.Keyboard;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class KeybindKeyHandler {
|
|
public static final String mps = "Modular Powersuits";
|
|
public static KeyBinding openKeybindGUI = new KeyBinding("Open MPS Keybind GUI", -1, mps);
|
|
public static KeyBinding goDownKey = new KeyBinding("Go Down (MPS Flight Control)", Keyboard.KEY_Z, mps);
|
|
public static KeyBinding cycleToolBackward = new KeyBinding("Cycle Tool Backward (MPS)", -1, mps);
|
|
public static KeyBinding cycleToolForward = new KeyBinding("Cycle Tool Forward (MPS)", -1, mps);
|
|
public static KeyBinding zoom = new KeyBinding("Zoom (MPS)", Keyboard.KEY_Y, mps);
|
|
public static KeyBinding openCosmeticGUI = new KeyBinding("Cosmetic (MPS)", -1, mps);
|
|
public static KeyBinding[] keybindArray = new KeyBinding[]{openKeybindGUI, goDownKey, cycleToolBackward, cycleToolForward, zoom, openCosmeticGUI};
|
|
public static boolean[] repeats = new boolean[keybindArray.length];
|
|
|
|
public KeybindKeyHandler() {
|
|
for (KeyBinding key : keybindArray) {
|
|
ClientRegistry.registerKeyBinding(key);
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void onKeyInput(InputEvent.KeyInputEvent e) {
|
|
int key = Keyboard.getEventKey();
|
|
boolean pressed = Keyboard.getEventKeyState();
|
|
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
|
|
// Only activate if there is a player to work with
|
|
if (player == null) {
|
|
return;
|
|
}
|
|
if (pressed) {
|
|
if (key == openKeybindGUI.getKeyCode()) {
|
|
World world = Minecraft.getMinecraft().theWorld;
|
|
if (Minecraft.getMinecraft().inGameHasFocus) {
|
|
player.openGui(ModularPowersuits.INSTANCE(), 1, world, 0, 0, 0);
|
|
}
|
|
}
|
|
if (key == openCosmeticGUI.getKeyCode()) {
|
|
World world = Minecraft.getMinecraft().theWorld;
|
|
if (Minecraft.getMinecraft().inGameHasFocus) {
|
|
player.openGui(ModularPowersuits.INSTANCE(), 3, world, 0, 0, 0);
|
|
}
|
|
}
|
|
if (key == goDownKey.getKeyCode()) {
|
|
PlayerInputMap.getInputMapFor(player.getCommandSenderName()).downKey = true;
|
|
}
|
|
if (key == cycleToolBackward.getKeyCode()) {
|
|
Minecraft.getMinecraft().playerController.updateController();
|
|
ModeChangingModularItem$.MODULE$.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1);
|
|
}
|
|
if (key == cycleToolForward.getKeyCode()) {
|
|
Minecraft.getMinecraft().playerController.updateController();
|
|
ModeChangingModularItem$.MODULE$.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1);
|
|
}
|
|
} else {
|
|
if (Minecraft.getMinecraft().thePlayer != null && key == goDownKey.getKeyCode()) {
|
|
PlayerInputMap.getInputMapFor(Minecraft.getMinecraft().thePlayer.getCommandSenderName()).downKey = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|