package openblocks.client.bindings;
import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.InputEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding;
import openblocks.Config;
import openblocks.common.Vario;
import openblocks.events.PlayerActionEvent;
import org.lwjgl.input.Keyboard;
public class KeyInputHandler {
private KeyBinding brickBinding;
private KeyBinding varioSwitchBinding;
private KeyBinding varioVolUpBinding;
private KeyBinding varioVolDownBinding;
private boolean brickKeyPressed;
private boolean varioSwitchKeyPressed;
private boolean varioVolUpKeyPressed;
private boolean varioVolDownKeyPressed;
public void setup() {
if (!Config.soSerious) {
brickBinding = new KeyBinding("openblocks.keybind.drop_brick", Keyboard.KEY_B, "openblocks.keybind.category");
ClientRegistry.registerKeyBinding(brickBinding);
}
if (Config.hanggliderEnableThermal) {
varioSwitchBinding = new KeyBinding("openblocks.keybind.vario_switch", Keyboard.KEY_V, "openblocks.keybind.category");
varioVolUpBinding = new KeyBinding("openblocks.keybind.vario_vol_up", Keyboard.KEY_NONE, "openblocks.keybind.category");
varioVolDownBinding = new KeyBinding("openblocks.keybind.vario_vol_down", Keyboard.KEY_NONE, "openblocks.keybind.category");
ClientRegistry.registerKeyBinding(varioSwitchBinding);
ClientRegistry.registerKeyBinding(varioVolUpBinding);
ClientRegistry.registerKeyBinding(varioVolDownBinding);
}
FMLCommonHandler.instance().bus().register(this);
}
private static boolean isNastyStuffAllowed() {
return !Config.soSerious && (Config.fartTypying || Minecraft.getMinecraft().currentScreen == null);
}
@SubscribeEvent
public void onKeyInput(InputEvent.KeyInputEvent evt) {
if (brickBinding != null && brickBinding.isPressed()) {
if (!brickKeyPressed) {
if (isNastyStuffAllowed()) new PlayerActionEvent(PlayerActionEvent.Type.BOO).sendToServer();
brickKeyPressed = true;
}
} else brickKeyPressed = false;
if (varioSwitchBinding != null && varioSwitchBinding.isPressed()) {
if (!varioSwitchKeyPressed) {
Vario.instance.toggle();
varioSwitchKeyPressed = true;
}
} else varioSwitchKeyPressed = false;
if (varioVolUpBinding != null && varioVolUpBinding.isPressed()) {
if (!varioVolUpKeyPressed) {
Vario.instance.incVolume();
varioVolUpKeyPressed = true;
}
} else varioVolUpKeyPressed = false;
if (varioVolDownBinding != null && varioVolDownBinding.isPressed()) {
if (!varioVolDownKeyPressed) {
Vario.instance.decVolume();
varioVolDownKeyPressed = true;
}
} else varioVolDownKeyPressed = false;
}
}