From 98c8f43b84ceac9c4b89973c64081db09f2d0e23 Mon Sep 17 00:00:00 2001 From: Gig Date: Sun, 14 Jun 2015 20:53:05 +0100 Subject: [PATCH] Added keybinding to toggle if hud is shown --- .../java/techreborn/client/hud/ChargeHud.java | 112 ++++++++++-------- .../client/keybindings/KeyBindings.java | 14 +++ .../keybindings/KeyInputEventHandler.java | 25 ++++ src/main/java/techreborn/lib/Key.java | 6 + src/main/java/techreborn/lib/ModInfo.java | 6 + .../java/techreborn/proxies/ClientProxy.java | 3 + 6 files changed, 118 insertions(+), 48 deletions(-) create mode 100644 src/main/java/techreborn/client/keybindings/KeyBindings.java create mode 100644 src/main/java/techreborn/client/keybindings/KeyInputEventHandler.java create mode 100644 src/main/java/techreborn/lib/Key.java diff --git a/src/main/java/techreborn/client/hud/ChargeHud.java b/src/main/java/techreborn/client/hud/ChargeHud.java index e68e45a2f..e83e60604 100644 --- a/src/main/java/techreborn/client/hud/ChargeHud.java +++ b/src/main/java/techreborn/client/hud/ChargeHud.java @@ -3,6 +3,7 @@ package techreborn.client.hud; import org.lwjgl.opengl.GL11; import codechicken.lib.colour.ColourARGB; +import techreborn.client.keybindings.KeyBindings; import techreborn.config.ConfigTechReborn; import techreborn.util.Color; import ic2.api.item.ElectricItem; @@ -28,11 +29,24 @@ public class ChargeHud { public static final ChargeHud instance = new ChargeHud(); private static Minecraft mc = Minecraft.getMinecraft(); + public static KeyBindings key; + public static boolean showHud = true; + @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.LOW) public void onRenderExperienceBar(RenderGameOverlayEvent event) { + if (key.config.isPressed()) + { + if (showHud == true) + { + showHud = false; + } + else if (showHud == false) + showHud = true; + } + if (event.isCancelable() || event.type != ElementType.ALL) return; @@ -45,62 +59,64 @@ public class ChargeHud EntityPlayer player = mc.thePlayer; ItemStack stack = player.getCurrentArmor(2); ItemStack stack2 = mc.thePlayer.inventory.getCurrentItem(); - - if(stack2 != null) + if (showHud == true) { - if ((stack2.getItem() instanceof IElectricItem)) + if(stack2 != null) { - double MaxCharge = ((IElectricItem) stack2.getItem()).getMaxCharge(stack2); - double CurrentCharge = ElectricItem.manager.getCharge(stack2); - Color color = Color.GREEN; - double quarter = MaxCharge / 4; - double half = MaxCharge / 2; - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(32826); - RenderHelper.enableStandardItemLighting(); - RenderHelper.enableGUIStandardItemLighting(); - RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20); - RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20); - if(CurrentCharge <= half) + if ((stack2.getItem() instanceof IElectricItem)) { - color = Color.YELLOW; + double MaxCharge = ((IElectricItem) stack2.getItem()).getMaxCharge(stack2); + double CurrentCharge = ElectricItem.manager.getCharge(stack2); + Color color = Color.GREEN; + double quarter = MaxCharge / 4; + double half = MaxCharge / 2; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(32826); + RenderHelper.enableStandardItemLighting(); + RenderHelper.enableGUIStandardItemLighting(); + RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20); + RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack2, 0, 20); + if(CurrentCharge <= half) + { + color = Color.YELLOW; + } + if(CurrentCharge <= quarter) + { + color = Color.DARK_RED; + } + mc.fontRenderer.drawString(color + Double.toString(CurrentCharge) + "/" + Double.toString(MaxCharge), 20, 25, 0); + } - if(CurrentCharge <= quarter) - { - color = Color.DARK_RED; - } - mc.fontRenderer.drawString(color + Double.toString(CurrentCharge) + "/" + Double.toString(MaxCharge), 20, 25, 0); - } - } - - if(stack != null) - { - if((stack.getItem() instanceof IElectricItem) && ConfigTechReborn.ShowChargeHud) + + if(stack != null) { - double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack); - double CurrentCharge = ElectricItem.manager.getCharge(stack); - Color color = Color.GREEN; - double quarter = MaxCharge / 4; - double half = MaxCharge / 2; - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glEnable(32826); - RenderHelper.enableStandardItemLighting(); - RenderHelper.enableGUIStandardItemLighting(); - //Render the stack - RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0); - //Render Overlay - RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0); - //Get the color depending on current charge - if(CurrentCharge <= half) + if((stack.getItem() instanceof IElectricItem) && ConfigTechReborn.ShowChargeHud) { - color = Color.YELLOW; + double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack); + double CurrentCharge = ElectricItem.manager.getCharge(stack); + Color color = Color.GREEN; + double quarter = MaxCharge / 4; + double half = MaxCharge / 2; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glEnable(32826); + RenderHelper.enableStandardItemLighting(); + RenderHelper.enableGUIStandardItemLighting(); + //Render the stack + RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0); + //Render Overlay + RenderItem.getInstance().renderItemOverlayIntoGUI(mc.fontRenderer, mc.renderEngine, stack, 0, 0); + //Get the color depending on current charge + if(CurrentCharge <= half) + { + color = Color.YELLOW; + } + if(CurrentCharge <= quarter) + { + color = Color.DARK_RED; + } + mc.fontRenderer.drawString(color + Double.toString(CurrentCharge) + "/" + Double.toString(MaxCharge), 20, 5, 0); } - if(CurrentCharge <= quarter) - { - color = Color.DARK_RED; - } - mc.fontRenderer.drawString(color + Double.toString(CurrentCharge) + "/" + Double.toString(MaxCharge), 20, 5, 0); } } } diff --git a/src/main/java/techreborn/client/keybindings/KeyBindings.java b/src/main/java/techreborn/client/keybindings/KeyBindings.java new file mode 100644 index 000000000..ea8affb42 --- /dev/null +++ b/src/main/java/techreborn/client/keybindings/KeyBindings.java @@ -0,0 +1,14 @@ +package techreborn.client.keybindings; + +import net.minecraft.client.settings.KeyBinding; + +import org.lwjgl.input.Keyboard; + +import techreborn.lib.ModInfo; + +public class KeyBindings { + + public static KeyBinding config = new KeyBinding(ModInfo.Keys.CONFIG, + Keyboard.KEY_P, ModInfo.Keys.CATEGORY); + +} diff --git a/src/main/java/techreborn/client/keybindings/KeyInputEventHandler.java b/src/main/java/techreborn/client/keybindings/KeyInputEventHandler.java new file mode 100644 index 000000000..666df63d2 --- /dev/null +++ b/src/main/java/techreborn/client/keybindings/KeyInputEventHandler.java @@ -0,0 +1,25 @@ +package techreborn.client.keybindings; + +import techreborn.lib.Key; +import techreborn.util.LogHelper; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent; + +public class KeyInputEventHandler +{ + private static Key getPressedKeybinding() + { + if (KeyBindings.config.isPressed()) { + return Key.CONFIG; + } + + return Key.UNKNOWN; + } + + @SubscribeEvent + public void handleKeyInputEvent(InputEvent.KeyInputEvent event) + { + LogHelper.info(getPressedKeybinding()); + } + +} diff --git a/src/main/java/techreborn/lib/Key.java b/src/main/java/techreborn/lib/Key.java new file mode 100644 index 000000000..1df2ad11d --- /dev/null +++ b/src/main/java/techreborn/lib/Key.java @@ -0,0 +1,6 @@ +package techreborn.lib; + +public enum Key { + + UNKNOWN, CONFIG; +} diff --git a/src/main/java/techreborn/lib/ModInfo.java b/src/main/java/techreborn/lib/ModInfo.java index 469e517ed..bc568e903 100644 --- a/src/main/java/techreborn/lib/ModInfo.java +++ b/src/main/java/techreborn/lib/ModInfo.java @@ -8,4 +8,10 @@ public class ModInfo { public static final String SERVER_PROXY_CLASS = "techreborn.proxies.CommonProxy"; public static final String CLIENT_PROXY_CLASS = "techreborn.proxies.ClientProxy"; public static final String GUI_FACTORY_CLASS = "techreborn.config.TechRebornGUIFactory"; + + public static final class Keys + { + public static final String CATEGORY = "keys.techreborn.category"; + public static final String CONFIG = "keys.techreborn.config"; + } } diff --git a/src/main/java/techreborn/proxies/ClientProxy.java b/src/main/java/techreborn/proxies/ClientProxy.java index 2bccdc88f..586e268fc 100644 --- a/src/main/java/techreborn/proxies/ClientProxy.java +++ b/src/main/java/techreborn/proxies/ClientProxy.java @@ -1,8 +1,10 @@ package techreborn.proxies; +import cpw.mods.fml.client.registry.ClientRegistry; import net.minecraftforge.common.MinecraftForge; import techreborn.client.IconSupplier; import techreborn.client.hud.ChargeHud; +import techreborn.client.keybindings.KeyBindings; public class ClientProxy extends CommonProxy { @@ -12,5 +14,6 @@ public class ClientProxy extends CommonProxy { super.init(); MinecraftForge.EVENT_BUS.register(new IconSupplier()); MinecraftForge.EVENT_BUS.register(new ChargeHud()); + ClientRegistry.registerKeyBinding(KeyBindings.config); } }