Problème GuiMainMenu



  • Bonjour à vous,

    Je voudrais savoir si une résolution de mon bug d'affichage existe, après avoir fais un nouveau GuiMainMenu, je voudrais savoir pourquoi l'ancien gui s'affiche 2 seconde pour laissez place au nouveau ? C'est assez voyant sachant que le fond n'est pas le même..

    Merci de m'éclairer sur ce sujet ^^


  • Administrateurs

    Salut,
    Avec quel code affiches-tu le nouveau menu ?



  • Avec ça :

    @EventHandler
       public void init(FMLInitializationEvent event)
       {
           if(event.getSide().isClient())
           {
               FMLCommonHandler.instance().bus().register(this);
           }
       }

    @SubscribeEvent
       @SideOnly(Side.CLIENT)
       public void onTick(TickEvent.ClientTickEvent event)
       {
           Minecraft mc = FMLClientHandler.instance().getClient();
           if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class))
           {
               mc.displayGuiScreen(new GuiCustomMainMenu());
           }
       }


  • Administrateurs

    Je ne sais pas si cette event existait déjà en 1.7 :

       @SubscribeEvent
       public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
       {
           if(event.getGui().getClass().equals(GuiIngameMenu.class))
           {
               NHGClient.mc.displayGuiScreen(new NHGGuiIngameMenu());
           }
       }
    

    C'est ce qu'on utilise sur nhg et le résultat est instantané.



  • Donc j'ai essayer voici ce que j'ai mis dans ma classe principale :

    @SubscribeEvent
     public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
     {
     if(event.getGui().getClass().equals(GuiMenu.class))
     {
     this.displayGuiScreen(new GuiMenu());
     }
     }

    Et celà me fais 2 erreurs, une sur getGui et l'autre sur displayGuiScreen..


  • Administrateurs

    event.gui au lieu de event.getGui() et FMLClientHandler.instance().getClient() au lieu de this.



  • Voici ce que compose ma classe principale :

    @EventHandler
    public void init(FMLInitializationEvent event)
    {
    proxy.registerRenders();

    if(event.getSide().isClient())
           {
               FMLCommonHandler.instance().bus().register(this);
           }
    }

    @SubscribeEvent
     public void onGuiInitPost(GuiScreenEvent.InitGuiEvent.Post event)
     {
     if(event.gui.getClass().equals(GuiMainMenu.class))
     {
     FMLClientHandler.instance().getClient().displayGuiScreen(new GuiMenu());
     }
     }

    Mais celà m'affiche le GuiMainMenu officiel et non le miens..


  • Administrateurs

    GuiScreenEvent est un event de forge, donc il faut utiliser MinecraftForge.EVENT_BUS.register(this) et au lieu de FMLCommonHandler.instance().bus().register(this);



  • Merci cela marche niquel ^^, forum actif et clair, continuez comme ça !


  • Administrateurs

    Tu peux mettre la balise résolu du-coup ^^