• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Unsolved GUI Button affichant des textures de minecraft

    Support pour les moddeurs
    1.12.2
    3
    6
    138
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • RayZens
      RayZens last edited by RayZens

      J’essaye d’ajouter un bouton à mon GUI, le soucis c’est qu’il y a un gros problème, tout marche sauf que ça affiche des textures de base de minecraft, alors que j’ai bien bind la texture que je voulais.

      6d2e7065-2b37-435b-9bf0-0e7ce794fe55-image.png

      Classe de mon Button:

      package fr.rayzens.newcity.buttons;
      
      import fr.rayzens.newcity.main;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.Gui;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.renderer.GlStateManager;
      import net.minecraft.util.ResourceLocation;
      
      public class competenceButton extends GuiButton
      {
          private static final ResourceLocation COMPETENCE_ICON = new ResourceLocation(main.MOD_ID, "textures/gui/competencebutton.png");
          
          public competenceButton(int buttonId, int x, int y)
          {
              super(buttonId, x, y, 256, 256, ""); 
          }
       
          public void drawButton(Minecraft mc, int mouseX, int mouseY)
          {
              if(this.visible)
              {
                  boolean mouseHover = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height;
                  if(mouseHover)
                  {
                      mc.getTextureManager().bindTexture(COMPETENCE_ICON);
                  }
                  else
                  {
                      mc.getTextureManager().bindTexture(COMPETENCE_ICON);
                  }
                  GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
                  Gui.drawScaledCustomSizeModalRect(this.x, this.y, 0, 0, 256, 256, 256, 256, 256, 256);
              }
          }
      }
      
      

      Classe de mon GUI:

      package fr.rayzens.newcity.gui;
      
      import fr.rayzens.newcity.main;
      import fr.rayzens.newcity.buttons.competenceButton;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.Gui;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.client.renderer.GlStateManager;
      import net.minecraft.util.ResourceLocation;
      
      public class menuGui extends GuiScreen {
      	
      	private final ResourceLocation background = new ResourceLocation(main.MOD_ID, "textures/gui/menubackground.png");
      	
      	private Minecraft minecraft;
      	
      	public menuGui(Minecraft mc) {
      		minecraft = mc;
      	}
      	
      	public void initGui() {
      	}
      	
      	public void actionPerformed(GuiButton button) {
      		
      	}
      	
      	public void drawScreen(int mouseX, int mouseY, float partialTicks) {
      		
      		drawBackgroundImage();
      		this.buttonList.clear();
      		this.buttonList.add(new competenceButton(156, 0, 0));
      		
      		super.drawScreen(mouseX, mouseY, partialTicks);
      	}
      	
      	public void drawBackgroundImage() {
      		
      		GlStateManager.pushMatrix();
      		GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
      		
              mc.getTextureManager().bindTexture(background);
              GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
              Gui.drawScaledCustomSizeModalRect(0, 0, 0, 0, 1, 1, this.width, this.height, 1, 1);
      		GlStateManager.popMatrix();
      	}
      }
      
      
      Ama 1 Reply Last reply Reply Quote 0
      • Ama
        Ama @RayZens last edited by

        @rayzens a dit dans GUI Button affichant des textures de minecraft :

        Gui.drawScaledCustomSizeModalRect(this.x, this.y, 0, 0, 256, 256, 256, 256, 256, 256);

        Il vient de cette ligne le problème.

        Décomposons les paramètres (De mémoire):

        int posX: Position dans le GUI en X => this.x
        int posY: Position dans le GUI en Y => this.y
        int U: Position à l’horizontale dans l’image => 0
        int V: Position à la verticale dans l’image => 0

        int width: Largeur en pixels de l’élément cible dans l’image => (ex: Bouton avec le cadenas)) => 16

        int height: Hauteur en pixel de l’élément cible dans l’image => (ex: Bouton avec le cadenas)) => 16

        int imageWidth: Largeur de l’image (textures/gui/competencebutton.png) où se trouve tous les éléments => 256

        int imageHeight: Hauteur de l’image (textures/gui/competencebutton.png) où se trouve tous les éléments => `256

        C’est peut être pas complètement vrai comme explications.
        Mais de tête ça ressemble à quelque chose comme ça.

        A Noter:
        drawScaledCustomSizeModalRect n’est pas la fonction que tu recherche, du moins c’est pas la plus adaptée.
        Mais je ne me souviens plus des noms des autres fonctions permettant l’affichage d’une image en 1.12, à toi de chercher.

        Si je t'ai filé un coup de main n'oublie pas le + / -
        Par contre évite les demandes d'aides en MP, tu sera sympa'

        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

        RayZens 2 Replies Last reply Reply Quote 0
        • RayZens
          RayZens @Ama last edited by RayZens

          Merci beaucoup pour les explications et ton aide, mais le soucis c’est que ça n’affiche pas la texture que je veux, le jeux affiche des textures issus de base de Minecraft, hors j’ai bien bind la texture de mon bouton…

          int width: Largeur en pixels de l’élément cible dans l’image => (ex: Bouton avec le cadenas)) => 16

          int height: Hauteur en pixel de l’élément cible dans l’image => (ex: Bouton avec le cadenas)) => 16

          Je viens de tout essayer, même en changeant de méthode pour faire un “drawTexturedModalRect(x, y, textureX, textureY, width, height)”

          Le gros gros soucis c’est que ça ne prend pas en compte ma texture, je ne sais quels sorcellerie, mais le jeux utilise la texture de base des GUI de minecraft à la place de celle que je lui donne 😕

          1 Reply Last reply Reply Quote 0
          • RayZens
            RayZens @Ama last edited by

            @ama

            J’ai essayer tout les drawRect mais aucun n’arrive à afficher la texture, comme si la texture n’est pas “draw”, et donc le jeux met à la place la base des GUI Button.

            A 1 Reply Last reply Reply Quote 1
            • A
              Antotor45 @RayZens last edited by

              @rayzens J’ai exactement la même erreur

              A 1 Reply Last reply Reply Quote 0
              • A
                Antotor45 @Antotor45 last edited by

                @antotor45 J’ai enfin trouver il suffit de mettre le bind texture avant le drawTexturedModalRect

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB