package ml.guis.events;
import java.util.Arrays;
import java.util.List;
import ml.Ml;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.event.EventPriority;
import net.minecraftforge.event.ForgeSubscribe;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class Event_RenderGameOverlayEvent extends Gui {
public Minecraft mc;
public Minecraft getMC() {
return mc;
}
public Event_RenderGameOverlayEvent(Minecraft mc) {
super();
this.mc = mc;
}
private static final ResourceLocation texturepath = new ResourceLocation(
Ml.modid, "textures/gui/bars.png");
private static final List<ElementType> BLOCKED_ELEMENT_TYPES = Arrays
.asList(ElementType.ARMOR, ElementType.EXPERIENCE,
ElementType.FOOD, ElementType.HEALTH,
ElementType.HEALTHMOUNT, ElementType.AIR);
@ForgeSubscribe(priority = EventPriority.NORMAL)
public void onRender(RenderGameOverlayEvent event) {
if (BLOCKED_ELEMENT_TYPES.contains(event.type)) {
event.setCanceled(true);
if (event.type == ElementType.EXPERIENCE) {
EntityClientPlayerMP player = mc.thePlayer;
/**
* HealthBar
*/
{
int xPos = event.resolution.getScaledWidth() / 50;
int yPos = event.resolution.getScaledHeight() - 32;
GL11.glDisable(GL11.GL_LIGHTING);
this.mc.renderEngine.bindTexture(texturepath);
this.drawTexturedModalRect(xPos, yPos, 0,
0, 223, 23);
int healthscale = (int) (((float) player.getHealth() / player
.getMaxHealth()) * 200);
this.drawTexturedModalRect(xPos + 12,
yPos + 4, 12, 25, healthscale, 16);
}
/**
* EnergyBar
*/
{
int xPos = (event.resolution.getScaledWidth() - (event.resolution
.getScaledWidth() / 50)) - 223;
int yPos = event.resolution.getScaledHeight() - 32;
// GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
// GL11.glDisable(GL11.GL_LIGHTING);
this.mc.renderEngine.bindTexture(texturepath);
this.drawTexturedModalRect(xPos, yPos, 0, 0, 223, 23);
int foodscale = (int) (((float) player.getFoodStats()
.getFoodLevel() / 20) * 200);
this.drawTexturedModalRect(xPos + 12, yPos + 4, 12, 25,
foodscale, 16);
return;
}
}
}
}
}
http://images.tinypic.pl/i/00450/hopgekv4xev1.png
That red part have some transparency, but in game that just normal red ;/
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
or any other value like
GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F);
don't works good. (some part are still just red, but other have 100% Transparency)
PS: How about that max hp.
And that possible to scale that GUI in some resolutions? Becouse on small resolution like 1024 x 768 my bar is on hotbar. But in "normal" resolution like: 1280×720 or 1920×1080 is very small ;/