public class HUD {
public Minecraft mc = Minecraft.getMinecraft();
public static class ModuleComparator implements Comparator<Module>{
@Override
public int compare(Module o1, Module o2) {
if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(o1.name) > Minecraft.getMinecraft().fontRendererObj.getStringWidth(o2.name)){
return -1;
}
if (Minecraft.getMinecraft().fontRendererObj.getStringWidth(o1.name) < Minecraft.getMinecraft().fontRendererObj.getStringWidth(o2.name)){
return 1;
}
return 0;
}
}
public void draw(){
ScaledResolution sr = new ScaledResolution(mc);
FontRenderer fr = mc.fontRendererObj;
Collections.sort(Client.modules, new ModuleComparator());
GlStateManager.pushMatrix();
GlStateManager.translate(4,4,0);
GlStateManager.scale(1.5,1.5,1);
GlStateManager.translate(-4, -4, 0);
fr.drawString("Skyline", 10, 10, -1);
GlStateManager.popMatrix();
int count = 0;
for (Module m : Client.modules){
if (!m.toggled || m.name.equals("TabGUI"))
continue;
int offset = count* (fr.FONT_HEIGHT + 6);
GL11.glTranslated(0.0f, 0.0f, -1.0f);
Gui.drawRect(sr.getScaledWidth() - fr.getStringWidth(m.name) - 10, offset, sr.getScaledWidth() - fr.getStringWidth(m.name) - 8, 6 + fr.FONT_HEIGHT + offset, -1);
Gui.drawRect(sr.getScaledWidth() - fr.getStringWidth(m.name) - 8, offset, sr.getScaledWidth(), 6 + fr.FONT_HEIGHT + offset, 0x90000000);
fr.drawString(m.name, sr.getScaledWidth() - fr.getStringWidth(m.name) - 4, offset + 4, -1);
count++;
}
Client.onEvent(new EventRenderGUI());
}
}
I have just recently stumbled upon this Problem, where the HudRenderer renders the wrong section of the textures and therefore completely destroys the Minecraft Armour and Hunger Bar. I am currently thinking if it is an issue with the DrawRect changing something it shouldn't. But I couldn't find anything about it. (To keep things Clean, the function is Called from another file)
public class RenderGUIHandler {
@SubscribeEvent
public void renderGUI(RenderGameOverlayEvent.Post event){
Client.hud.draw();
}
}
Any help would be greatly appreciated