Non résolu Mettre des boutons transparents ? 1.12.2
-
Bonjour,
Avec mon mod, je souhaiterais rendre certains boutons transparents (garder seulement le texte) mais faire en sorte que quand on le hover, il se mette en jaune comme avec les boutons de base du MainMenu et du IngameMenu.
Vous sauriez comment m’aider ?Sinon, comment fait-on pour mettre un texte quand on hover un bouton personnalisé sur les deux menus précédemment cités ?
-
Bonsoir,
C’est quel point exactement qui te cause problème ?
Tout est à gérer dans la fonction qui draw ton button.
C’est quel bouton que tu veux modifier exactement ? Ceux de menu de Minecraft ou des boutons sur lesquelles tu as le controle ? Dans le second cas c’est très simple, il suffit de faire un bouton custom, reprendre la fonction de draw deGuiButton
et la modifier pour que le rendu du fond ne soit que fait quand l’hoverstate est à 1.
Pour le premier cas c’est plus compliqué, il faut passer par un event pour remplacer les boutons en question ou patcher directement le code de Minecraft. -
Oups pardon, je me suis mal exprimé…
Du coup, comment je fais pour faire en sorte que quand je draw mon button, ca rende le fond invisible mais que ca fasse encore comme le bouton de base ?Sionon, pour le hover, je n’ai pas tout saisi: en gros: je voudrais que quand je hover (par exemple) le bouton discord sur mon MainMenu, il y ait un texte qui s’affiche géré par les fichiers .lang qui dit par exemple: Notre discord
-
Fais une nouvelle classe qui extends GuiButton, tu reprends tout la fonction
public void drawButton(Minecraft mc, int mouseX, int mouseY, float partialTicks)
mais en retirant les deux lignes qui draw le fond du bouton :this.drawTexturedModalRect(this.x, this.y, 0, 46 + i * 20, this.width / 2, this.height); this.drawTexturedModalRect(this.x + this.width / 2, this.y, 200 - this.width / 2, 46 + i * 20, this.width / 2, this.height);
Tu peux aussi enlever le bind de texture qui se trouve au-dessus.
Et pour le hover même principe, dans cette fonction de draw du bouton il y a un
if (this.hovered)
tu peux y faire ce que tu veux dedans, ce code sera exécuté uniquement si la souris est sur le bouton. -
D’accord, mais quand je mets mon bouton new GuiButtonTransparent, et que dans GuiButtonTransparent je mets tout comme tu as dit, ca me met une erreur, mon ide veut pas que je donne de nom avec le .lang et que je donne une taille au bouton !
-
Autant pour moi, j’ai réussi, merci ^^
Petite question pour le if this.hovered : comment j’affiche un petit texte sous la souris ?
c’est bien avec le this.drawCenteredString ? -
Plutôt un simple drawString, il faut draw le texte en utilisant comme coordonnées celle de la souris, tu as le mouseX et le mouseY en argument de la fonction.