Problème pour déclaré un gui et le réutiliser



  • donc cette partie de code:

    
    public String getGuiID()
       {
           return  "minecraft:furnace";
       }
    
    

    dans mon tileentity et je voudre changer minecraft:furnace par mon gui mais il faut un truc de sa sytle monmod:mongui mais je sais pas comment fair pour déclaré mon gui car il font pas la même chose sur les tuto et code source que j'ai trouver sur le web. et j'ai cherche dans le code source du minecraft et j'ai rien trouvé.


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Avec forge pour associé un gui et un container a un tile entity il faut passer par la méthode player.openGui (dans le bloc) et par un gui handler.
    La méthode getGuiID n'est pas nécessaire.

    Il y a un tutoriel ici sur le sujet : https://www.minecraftforgefrance.fr/showthread.php?tid=2082
    Le code est obsolète (comme 1.7.10) mais le nom des interfaces et les méthodes en rapport avec les gui / container n'ont pas vraiment changé (il faudra juste remplacer les x, y et z dans la méthode openGui, à remplacer par pos.getX(), pos.getY() et pos.getZ() ).



  • @'robin4002':

    Salut,
    Avec forge pour associé un gui et un container a un tile entity il faut passer par la méthode player.openGui (dans le bloc) et par un gui handler.
    La méthode getGuiID n'est pas nécessaire.

    Il y a un tutoriel ici sur le sujet : https://www.minecraftforgefrance.fr/showthread.php?tid=2082
    Le code est obsolète (comme 1.7.10) mais le nom des interfaces et les méthodes en rapport avec les gui / container n'ont pas vraiment changé (il faudra juste remplacer les x, y et z dans la méthode openGui, à remplacer par pos.getX(), pos.getY() et pos.getZ() ).

    j'ai des erreu dans le GuiHandler

    
    package forgingaura.forgeyourworld.ffactory.handler;
    
    import forgingaura.forgeyourworld.ffactory.Container.ContainerSteampunkFurnace;
    import forgingaura.forgeyourworld.ffactory.gui.GuiSteampunkFurnace;
    import forgingaura.forgeyourworld.ffactory.tileentity.TileEntitySteampunkFurnace;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    import net.minecraftforge.fml.common.network.IGuiHandler;
    
    public class FactoryGuiHandler implements IGuiHandler
    {
       @Override
       public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
       {
           TileEntity tile = world.getTileEntity(x, y, z/*ici il dit que sa peux pas etre aplique au monde*/);
           if(tile instanceof TileEntitySteampunkFurnace)
           {
               return new ContainerSteampunkFurnace((TileEntitySteampunkFurnace  /*il me dit que il peux par remplace entity.player.InventoryPlayer*/)tile, player.inventory);
           }
           return null;
       }
    
       @Override
       public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
       {
           TileEntity tile = world.getTileEntity(x, y, z/*ici il dit que sa peux pas etre aplique au monde*/);
           if(tile instanceof TileEntitySteampunkFurnace)
           {
               return new GuiSteampunkFurnace((TileEntitySteampunkFurnace /*[font=Courier Newil me dit que il peux par remplace entity.player.InventoryPlayer]*/)tile, player.inventory);
           }
           return null;
       }
    }
    
    

    sinon il a pas posibiliter de fair l'autre methode


    voila le code source du block, du container et du tileentity
    le block: https://pastebin.com/b2zd3ZVS
    le tile : https://pastebin.com/aicdJX9Y
    le container: https://pastebin.com/ButCLNgw
    et le gui : https://pastebin.com/brYUB4kK


  • Moddeurs confirmés Rédacteurs

    Il faut que tu utilises un BlockPos à la place de x, y, z.
    Regarde les arguments de la méthode World#getTileEntity. Ça devrait te donner un truc du genre ```java
    world.getTileEntity(new BlockPos(x, y, z));



  • sa marche mais j'ai toujour une ereurs avec 
    [size=smallreturn][size=small ][size=smallnew][size=small ][size=smallContainerSteampunkFurnace][size=small((][size=smallTileEntitySteampunkFurnace][size=small  ][size=small/][size=smallil me dit que il peux par remplace entity.player.InventoryPlayer][size=small/][size=small)][size=smalltile][size=small,][size=smallplayer][size=small.][size=smallinventory][size=small);]

    et
    [size=smallreturn][size=small ][size=smallnew][size=small ][size=smallGuiSteampunkFurnace][size=small((][size=smallTileEntitySteampunkFurnace][size=small ]%(#3f7f5f)[size=smallil me dit que il peux par remplace entity.player.InventoryPlayer]*/[size=small)][size=smalltile][size=small,][size=small player][size=small.][size=smallinventory][size=small);]


Log in to reply