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);
        }
    
    
    }
    
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    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);

  • Moddeurs confirmés Rédacteurs Administrateurs

    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


Log in to reply