Added keybinding to toggle if hud is shown
This commit is contained in:
parent
59d4199260
commit
98c8f43b84
6 changed files with 118 additions and 48 deletions
|
@ -3,6 +3,7 @@ package techreborn.client.hud;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import codechicken.lib.colour.ColourARGB;
|
import codechicken.lib.colour.ColourARGB;
|
||||||
|
import techreborn.client.keybindings.KeyBindings;
|
||||||
import techreborn.config.ConfigTechReborn;
|
import techreborn.config.ConfigTechReborn;
|
||||||
import techreborn.util.Color;
|
import techreborn.util.Color;
|
||||||
import ic2.api.item.ElectricItem;
|
import ic2.api.item.ElectricItem;
|
||||||
|
@ -28,11 +29,24 @@ public class ChargeHud
|
||||||
{
|
{
|
||||||
public static final ChargeHud instance = new ChargeHud();
|
public static final ChargeHud instance = new ChargeHud();
|
||||||
private static Minecraft mc = Minecraft.getMinecraft();
|
private static Minecraft mc = Minecraft.getMinecraft();
|
||||||
|
public static KeyBindings key;
|
||||||
|
public static boolean showHud = true;
|
||||||
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@SubscribeEvent(priority = EventPriority.LOW)
|
@SubscribeEvent(priority = EventPriority.LOW)
|
||||||
public void onRenderExperienceBar(RenderGameOverlayEvent event)
|
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)
|
if (event.isCancelable() || event.type != ElementType.ALL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -45,62 +59,64 @@ public class ChargeHud
|
||||||
EntityPlayer player = mc.thePlayer;
|
EntityPlayer player = mc.thePlayer;
|
||||||
ItemStack stack = player.getCurrentArmor(2);
|
ItemStack stack = player.getCurrentArmor(2);
|
||||||
ItemStack stack2 = mc.thePlayer.inventory.getCurrentItem();
|
ItemStack stack2 = mc.thePlayer.inventory.getCurrentItem();
|
||||||
|
if (showHud == true)
|
||||||
if(stack2 != null)
|
|
||||||
{
|
{
|
||||||
if ((stack2.getItem() instanceof IElectricItem))
|
if(stack2 != null)
|
||||||
{
|
{
|
||||||
double MaxCharge = ((IElectricItem) stack2.getItem()).getMaxCharge(stack2);
|
if ((stack2.getItem() instanceof IElectricItem))
|
||||||
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;
|
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 != null)
|
|
||||||
{
|
|
||||||
if((stack.getItem() instanceof IElectricItem) && ConfigTechReborn.ShowChargeHud)
|
|
||||||
{
|
{
|
||||||
double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack);
|
if((stack.getItem() instanceof IElectricItem) && ConfigTechReborn.ShowChargeHud)
|
||||||
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;
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
src/main/java/techreborn/client/keybindings/KeyBindings.java
Normal file
14
src/main/java/techreborn/client/keybindings/KeyBindings.java
Normal file
|
@ -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);
|
||||||
|
|
||||||
|
}
|
|
@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
6
src/main/java/techreborn/lib/Key.java
Normal file
6
src/main/java/techreborn/lib/Key.java
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
package techreborn.lib;
|
||||||
|
|
||||||
|
public enum Key {
|
||||||
|
|
||||||
|
UNKNOWN, CONFIG;
|
||||||
|
}
|
|
@ -8,4 +8,10 @@ public class ModInfo {
|
||||||
public static final String SERVER_PROXY_CLASS = "techreborn.proxies.CommonProxy";
|
public static final String SERVER_PROXY_CLASS = "techreborn.proxies.CommonProxy";
|
||||||
public static final String CLIENT_PROXY_CLASS = "techreborn.proxies.ClientProxy";
|
public static final String CLIENT_PROXY_CLASS = "techreborn.proxies.ClientProxy";
|
||||||
public static final String GUI_FACTORY_CLASS = "techreborn.config.TechRebornGUIFactory";
|
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";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package techreborn.proxies;
|
package techreborn.proxies;
|
||||||
|
|
||||||
|
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import techreborn.client.IconSupplier;
|
import techreborn.client.IconSupplier;
|
||||||
import techreborn.client.hud.ChargeHud;
|
import techreborn.client.hud.ChargeHud;
|
||||||
|
import techreborn.client.keybindings.KeyBindings;
|
||||||
|
|
||||||
public class ClientProxy extends CommonProxy {
|
public class ClientProxy extends CommonProxy {
|
||||||
|
|
||||||
|
@ -12,5 +14,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
super.init();
|
super.init();
|
||||||
MinecraftForge.EVENT_BUS.register(new IconSupplier());
|
MinecraftForge.EVENT_BUS.register(new IconSupplier());
|
||||||
MinecraftForge.EVENT_BUS.register(new ChargeHud());
|
MinecraftForge.EVENT_BUS.register(new ChargeHud());
|
||||||
|
ClientRegistry.registerKeyBinding(KeyBindings.config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue