• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu GuiContainer et boutons

    Anciennes versions
    1.6.4
    3
    8
    2176
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Mugiwaxar
      Mugiwaxar dernière édition par

      Bonjours à toutes et à tous !

      Jusqu’à maintenant, j’ai travaillé avec des GuiScreen pour faire mes GUIs, j’ai créée mes propres boutons en faisant un extends de GuiButton, tout marchais nickel

      Mais, j’ai eu besoin de rajouter des slots à mon GUI, et je suis donc passé de GuiScreen à GuiContainer, malheureusement, lorsque j’appuis sur un bouton, la fonction event mouseReleased() de mes boutons n’est plus appelé, alors qu’avant elle l’était 😞

      Je précise qu’utiliser la fonction actionPerformed() n’est pas possible pour moi, vu que j’utilise des tableaux dynamique de boutons qui ne sont pas fixe, donc je ne peux pas savoir à quoi correspond l’id du bouton

      Voila, quelqu’un à-t’il deja eu ce problème ?

      Merci d’avance pour votre aide !

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        On a eu le même problème kevin_68 et moi pour les sliders, on a contourné le problème comme ça :
        https://github.com/FFMT/FFMT-libs/blob/master/common/fr/minecraftforgefrance/ffmtlibs/gui/FFMTGuiContainerSliderBase.java#L19-L46

        1 réponse Dernière réponse Répondre Citer 0
        • Mugiwaxar
          Mugiwaxar dernière édition par

          Oui, ça c’est dans le cas où tu peux utiliser les IDs des boutons, moi mon problème, c’est que chaque bouton peuvent être nimporte quoi (en gros, gros, gros, il change suivant les objets du player, ainsi que les blocs autours, etc … ), donc impossible de savoir à quoi correspond une ID extérieurement au bouton, mon bouton est identifié internement a lui même, de plus, j’ai créé un tableau qui peut être de plusieurs type de bouton, donc sans cette fonction qui marche correctement, je vais avoir une grosse dificulté

          Est-ce un bug de forge ?

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Non, ça vient de mc, GuiContainer ne reprend pas toute les fonctions de Gui.java
            Je vois pas comment résoudre ton problème 😕

            1 réponse Dernière réponse Répondre Citer 0
            • Mugiwaxar
              Mugiwaxar dernière édition par

              😞

              Jvai essayer de trouver quelque chose, jte tiens au courant

              1 réponse Dernière réponse Répondre Citer 0
              • R
                rafoudiablol dernière édition par

                Essaye :

                
                protected void mouseClicked(int par1, int par2, int par3)
                {
                boolean buttonHover = false;
                
                if (par3 == 0)
                {
                for (int l = 0; l < this.buttonList.size(); ++l)
                {
                GuiButton guibutton = (GuiButton)this.buttonList.get(l);
                
                if (guibutton.mousePressed(this.mc, par1, par2))
                {
                this.selectedButton = guibutton;
                guibutton.func_146113_a(this.mc.getSoundHandler());
                this.actionPerformed(guibutton);
                buttonHover = true;
                }
                }
                }
                
                if(!buttonHover)
                {
                super.mouseClicked(par1, par2, par3);
                }
                }
                
                protected void mouseMovedOrUp(int p_146286_1_, int p_146286_2_, int p_146286_3_)
                {
                if (this.selectedButton != null && p_146286_3_ == 0)
                {
                this.selectedButton.mouseReleased(p_146286_1_, p_146286_2_);
                this.selectedButton = null;
                }
                
                super.mouseMovedOrUp(p_146286_1_, p_146286_2_, p_146286_3_);
                }
                
                private GuiButton selectedButton;
                
                
                1 réponse Dernière réponse Répondre Citer 0
                • Mugiwaxar
                  Mugiwaxar dernière édition par

                  Ok, sinon j’ai trouvé une petite solution nul, mais qui marche 😄

                  
                  @Override
                  protected void actionPerformed(GuiButton buttonClicked)
                  {
                  
                  for(Object button : this.buttonList.toArray())
                  {
                  if(button != null && button instanceof GuiButton)
                  {
                  ((GuiButton)button).mouseReleased(buttonClicked.xPosition, buttonClicked.yPosition);
                  }
                  }
                  
                  }
                  
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • Mugiwaxar
                    Mugiwaxar dernière édition par

                    Bon ba sa a l’air de marché nickel 🙂

                    1 réponse Dernière réponse Répondre Citer 0
                    • 1 / 1
                    • Premier message
                      Dernier message
                    Design by Woryk
                    Contact / Mentions Légales

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB