1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Bug d'affichage de GUI

Discussion dans 'Aide à la création de mod' créé par Nolan-XX, 4 Juil 2015.

  1. Nolan-XX

    Nolan-XX Modérateur
    Staff

    Inscrit:
    29 Déc 2012
    Messages:
    10 234
    Points:
    304
    Sexe:
    Homme
    Ayant décidé de me lancer dans un énième projet, je décide de créer une machine avec un GUI. La machine marche, les crafts fonctionnent ... Mais on ne peut pas en dire autant du GUI. Regardez donc :

    J'ai suivi ce tuto : http://www.minecraftforgefrance.fr/showthread.php?tid=2017

    Voici ma classe GUI :
    Code (Java):

    package rwby.GUI;

    import net.minecraft.client.gui.inventory.GuiContainer;
    import net.minecraft.client.resources.I18n;
    import net.minecraft.entity.player.InventoryPlayer;
    import net.minecraft.inventory.IInventory;
    import net.minecraft.util.ResourceLocation;

    import org.lwjgl.opengl.GL11;

    import rwby.Blocks.TileEntity_Dust_Energizer;
    import rwby.Handlers.B_Dust_Energizer_Container;

    public class GUI_Dust_Energizer extends GuiContainer {

       private static final ResourceLocation texture = new ResourceLocation("rwby:textures/GUI/energizer_load.png");
      private TileEntity_Dust_Energizer TileEntity_Dust_Energizer;
      private IInventory playerInv;
       
       public GUI_Dust_Energizer(TileEntity_Dust_Energizer tile, InventoryPlayer inventory)
       {
         super(new B_Dust_Energizer_Container(tile, inventory));
      this.TileEntity_Dust_Energizer = tile;
      this.playerInv = inventory;
      this.allowUserInput = false;
      this.ySize = 256;
      this.xSize = 195;
       }

       @Override
       protected void drawGuiContainerBackgroundLayer(float partialRenderTick, int x, int y)
       {
         
         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.getTextureManager().bindTexture(texture);
        int k = (this.width - this.xSize) / 2;
        int l = (this.height - this.ySize) / 2;
        this.drawTexturedModalRect(k, l, 0, 46, this.xSize, this.ySize - 49); //Cette ligne a changé

         
      if(this.TileEntity_Dust_Energizer.isBurning())
         {
           int i = this.TileEntity_Dust_Energizer.getCookProgress(); //Nous créerons cette fonction après
           this.drawTexturedModalRect(x, y, 0, 0, width, height);
         }
           
       }
       
       protected void drawGuiContainerForegroundLayer(int x, int y)
      {
      this.fontRendererObj.drawString(this.playerInv.hasCustomInventoryName() ? this.playerInv.getInventoryName() : I18n.format(this.playerInv.getInventoryName()), 10, this.ySize - 98, 4210752);
      }
       
       

    }
    Le problème n'est pas la position des cases, mais bien le GUI qui apparait a la position de ma souris pendant la "fonte" au lieu d'apparaitre a la position nécessaire.
     
  2. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    if(this.TileEntity_Dust_Energizer.isBurning())
    {
    int i = this.TileEntity_Dust_Energizer.getCookProgress(); //Nous créerons cette fonction après
    this.drawTexturedModalRect(x, y, 0, 0, width, height);
    }
    x et y sont les coordonnées de la souris. Il faut faire comme le draw juste au dessus :
    int k = (this.width - this.xSize) / 2;
    int l = (this.height - this.ySize) / 2;
    this.drawTexturedModalRect(k, l, 0, 46, this.xSize, this.ySize - 49); //Cette ligne a changé
     
  3. Nolan-XX

    Nolan-XX Modérateur
    Staff

    Inscrit:
    29 Déc 2012
    Messages:
    10 234
    Points:
    304
    Sexe:
    Homme
    ça marche parfaitement, a un détail près
    dussssssut.png
    Faut que j'agrandisse la texture pour éviter ça, non ?
     
  4. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Le texte qui passe dans la texture ? Oui essayes d'agrandir la texture.
     
  5. Nolan-XX

    Nolan-XX Modérateur
    Staff

    Inscrit:
    29 Déc 2012
    Messages:
    10 234
    Points:
    304
    Sexe:
    Homme
    Non, je parlais du bout de GUI qui s'affiche a droite de l'écran.
     
  6. robin4002

    robin4002 Support Technique
    Staff

    Inscrit:
    17 Août 2012
    Messages:
    5 478
    Points:
    229
    Sexe:
    Homme
    Je n'avais même pas vu x)
    Tu peux aussi modifier les valeurs dans la fonction draw.
     

Partager cette page