Résolu 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 ^^
-
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());
}
} -
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…
-
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…
-
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 !
-
Tu peux mettre la balise résolu du-coup ^^