@‘robin4002’:
Salut,
C’est possible via GuiScreenEvent.DrawScreenEvent.Pre. Il faut cancel l’event puis utiliser le code que j’ai donner pour draw à nouveau.
Cependant tu vas perdre le rendu des boutons, donc il faut les get via reflexion pour les rendre à nouveau :List buttonList = ObfuscationReflectionHelper.getPrivateValue(GuiScreen.class, event.gui, "buttonList", "field_146292_n"); for(k = 0; k < buttonList.size(); ++k) { ((GuiButton)buttonList.get(k)).drawButton(Minecraft.getMinecraft(), event.mouseX, event.mouseY); } List labelList = ObfuscationReflectionHelper.getPrivateValue(GuiScreen.class, event.gui, "labelList", "field_146293_o"); for(k = 0; k < labelList.size(); ++k) { ((GuiLabel)labelList.get(k)).drawLabel(Minecraft.getMinecraft(), event.mouseX, event.mouseY); }
Est ce que c’est bien comme ça que je dois cancel l’event :
public void cancelBg(GuiScreenEvent.DrawScreenEvent.Pre event) {
event.setCanceled(true);
}
Pour le code du background je l’ai modifié un peu pour qu’il fonctionne avec l’event mais j’ai quelques erreurs que je n’arrive pas à résoudre.
Voici le code :
GL11.glViewport(0, 0, 256, 256);
event.gui.getTextureManager().bindTexture(backGround);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glViewport(0, 0, event.gui.width, event.gui.height);
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
tessellator.setColorRGBA_F(1.0F, 1.0F, 1.0F, 1.0F);
int k = event.gui.width;
int l = event.gui.height;
tessellator.addVertexWithUV(0, 0, this.zLevel, 0, 0);
tessellator.addVertexWithUV(0, l, this.zLevel, 0, 1);
tessellator.addVertexWithUV(k, l, this.zLevel, 1, 1);
tessellator.addVertexWithUV(k, 0, this.zLevel, 1, 0);
tessellator.draw();
La méthode getTextureManager a t’elle changé ?
Pour le tessellator j’ai des erreurs un peu partout nottamment à sa déclaration : “The field Tessellator.instance is not visible”