Résolu Modification du menu F3
-
Bonjour , j’ai essayer de modifier le menu F3 pour qu’il y est que les coordonnées le biomes la direction du joueur et les FPS, mais celui-ci ne s’affiche pouvez-vous me dire ce que j’ai oublier ou mal-fait car mon IDE m’indique aucune erreur et que j’ai essayer plusieurs solutions, Merci
public class F3Event { Minecraft mc = Minecraft.getMinecraft(); @SideOnly(Side.CLIENT) @SubscribeEvent public void onRenderPre(RenderGameOverlayEvent.Pre event) { if(event.type == RenderGameOverlayEvent.ElementType.DEBUG) { event.setCanceled(true); } } @SubscribeEvent public void onRenderPost(RenderGameOverlayEvent.Post event) { if(event.type == RenderGameOverlayEvent.ElementType.DEBUG) { //FPS this.drawString(Minecraft.getMinecraft().fontRenderer, mc.debug.split(",", 2)[0], 10, 6, 167772215); //COORDS int angle = MathHelper.floor_double((double)(Minecraft.getMinecraft().thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; int x = (int) mc.thePlayer.posX; int y = (int) mc.thePlayer.posY; int z = (int) mc.thePlayer.posZ; String direction = Direction.directions[angle]; String var5 = " "; String var4 = EnumChatFormatting.LIGHT_PURPLE + "X: " + x + "Y: " + y + " Z: " + z; this.drawString(mc.fontRenderer, EnumChatFormatting.LIGHT_PURPLE + mc.theWorld.getBiomeGenForCoords(MathHelper.floor_double(mc.thePlayer.posX), MathHelper.floor_double(mc.thePlayer.posZ)).biomeName + var5 + direction, 10, 12, 167772215); this.drawString(mc.fontRenderer, var4, 10, 18, 167772215); } } @SideOnly(Side.CLIENT) private void drawString(FontRenderer fontRenderer, String str, int x, int y, int color) { fontRenderer.drawStringWithShadow(str, x, y, color); } }
-
Bonsoir,
Il faut mettre ton code du nouveau rendu juste en dessous du event.setCancel(true) de RenderGameOverlayEvent.Pre (tout en restant dans la condition) car si l’event pre est cancel l’event de post n’est pas appelé.
-
Merci pour ta réponse mais le menu F3 ne s’affiche pas non plus
( J’ai mis dans ma classe Client : MinecraftForge.EVENT_BUS.register(new F3Event()); )
public class F3Event { Minecraft mc = Minecraft.getMinecraft(); @SideOnly(Side.CLIENT) @SubscribeEvent public void onRenderPre(RenderGameOverlayEvent.Pre event) { if(event.type == RenderGameOverlayEvent.ElementType.DEBUG) { event.setCanceled(true); //FPS this.drawString(Minecraft.getMinecraft().fontRenderer, mc.debug.split(",", 2)[0], 10, 6, 167772215); //COORDS int angle = MathHelper.floor_double((double)(Minecraft.getMinecraft().thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; int x = (int) mc.thePlayer.posX; int y = (int) mc.thePlayer.posY; int z = (int) mc.thePlayer.posZ; String direction = Direction.directions[angle]; String var5 = " "; String var4 = EnumChatFormatting.LIGHT_PURPLE + "X: " + x + "Y: " + y + " Z: " + z; this.drawString(mc.fontRenderer, EnumChatFormatting.LIGHT_PURPLE + mc.theWorld.getBiomeGenForCoords(MathHelper.floor_double(mc.thePlayer.posX), MathHelper.floor_double(mc.thePlayer.posZ)).biomeName + var5 + direction, 10, 12, 167772215); this.drawString(mc.fontRenderer, var4, 10, 18, 167772215); } } @SideOnly(Side.CLIENT) private void drawString(FontRenderer fontRenderer, String str, int x, int y, int color) { fontRenderer.drawStringWithShadow(str, x, y, color); } }
-
Ajoute ça au à la place SubscribeEvent
@SubscribeEvent(priority = EventPriority.HIGHEST)
-
Merci pour ta réponse mais quand je fais F3 toujours rien ne s’affiche je ne comprend pas
-
event.setCanceled(true);
Met ça à la fin, juste après
this.drawString(mc.fontRenderer, var4, 10, 18, 167772215);
Et je crois que tu dois enregistrer l’eventbus dans la fonction init de ta classe principale
MinecraftForge.EVENT_BUS.register(new F3Event);
-
L’enregistrement d’event est ok, ça ne sert à rien de regarder à ce niveau (s’il avait un problème avec l’event le menu F3 serait celui de base).
Ce qu’il faut vérifier ce sont des fonctions de draw de texte, vu que tu as rien à l’écran je pense que tu écris en dehors de l’écran.
-
Ah je pensais que son menu F3 ne s’afficher pas par dessus celui de minecraft. Lance en debug et change les coordonnées des fps par exemple, et une fois afficher sur l’écran change juste un peu la valeur pour l’afficher ou tu veux
-
Merci pour vos réponses le problème était que je me suis fail dans la color , j’ai mit : 167772215 alors qu’il fallait mettre 16777215