MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Créer un bloc type four (machine)

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.7.10
    236 Messages 39 Publieurs 69.0k Vues 15 Watching
    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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      public TileEntity createTileEntity(World world, int metadata)
      C’est ça le nom de la fonction.

      1 réponse Dernière réponse Répondre Citer 0
      • FlowF Hors-ligne
        Flow
        dernière édition par

        Ok l’erreur est enlever mais c’est hyper bizarre j’ai vraiment suivi le tuto a la lettre et tout changer , ( car j’aimerais 2 slot input et 1 output) mais rien ne s’ouvre , je met tout mais pour moi y a pas de probleme 😞

        BlockAnalyzer

        package mod.common.block;
        
        import mod.ModMinecraft;
        import mod.common.block.entity.TileEntityAnalyzer;
        import net.minecraft.block.Block;
        import net.minecraft.block.material.Material;
        import net.minecraft.entity.item.EntityItem;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.inventory.IInventory;
        import net.minecraft.item.ItemStack;
        import net.minecraft.nbt.NBTTagCompound;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.world.World;
        
        public class BlockAnalyzer extends Block
        {
        public BlockAnalyzer()
        {
          super(Material.rock); //Mettez le material qui convient
          this.setResistance(8.0F);
          this.setHarvestLevel("pickaxe", 2); //Outil pour casser le bloc, pour le chiffre : 0=bois, 1=pierre, 2=fer, 3=diamant
          this.setBlockTextureName(ModMinecraft.MODID + ":analyzer.png"); //N'oubliez pas de remplacer "ModTutoriel"
          // … Mettez les attributs complémentaires que vous voulez
        }
        
        @Override
        public TileEntity createTileEntity(World world, int metadata) //Instancie le TileEntity
           {
               return new TileEntityAnalyzer();
           }
        
           @Override
           public boolean hasTileEntity(int metadata) //Permet de savoir si le bloc a un TileEntity
           {
               return true;
           }
        
           public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
           {
               TileEntity tileentity = world.getTileEntity(x, y, z);
        
               if (tileentity instanceof IInventory)
               {
                IInventory inv = (IInventory)tileentity;
                   for (int i1 = 0; i1 < inv.getSizeInventory(); ++i1)
                   {
                       ItemStack itemstack = inv.getStackInSlot(i1);
        
                       if (itemstack != null)
                       {
                           float f = world.rand.nextFloat() * 0.8F + 0.1F;
                           float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
                           EntityItem entityitem;
        
                           for (float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world.spawnEntityInWorld(entityitem))
                           {
                               int j1 = world.rand.nextInt(21) + 10;
        
                               if (j1 > itemstack.stackSize)
                               {
                                   j1 = itemstack.stackSize;
                               }
        
                               itemstack.stackSize -= j1;
                               entityitem = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
                               float f3 = 0.05F;
                               entityitem.motionX = (double)((float)world.rand.nextGaussian() * f3);
                               entityitem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
                               entityitem.motionZ = (double)((float)world.rand.nextGaussian() * f3);
        
                               if (itemstack.hasTagCompound())
                               {
                                   entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
                               }
                           }
                       }
                   }
        
                   world.func_147453_f(x, y, z, block);
               }
        
               super.breakBlock(world, x, y, z, block, metadata);
           }
        
           public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitx, float hity, float hitz)
           {
               if (world.isRemote)
               {
                   return true;
               }
               else
               {
                player.openGui(ModMinecraft.instance, 0, world, x, y, z);
                   return true;
               }
           }
        }
        
        

        AnalyzerReceipes

        package mod.common.block;
        
        import java.util.HashMap;
        import java.util.Iterator;
        import java.util.Map;
        import java.util.Map.Entry;
        
        import mod.common.item.ItemRegister;
        import net.minecraft.item.Item;
        import net.minecraft.item.ItemStack;
        
        @SuppressWarnings("rawtypes")
        public class AnalyzerRecipes {
        
        private static final AnalyzerRecipes smeltingBase = new AnalyzerRecipes(); //Permet d'instancier votre classe car vous le l'instancierez nul part ailleur
        private Map smeltingList = new HashMap(); //Ceci permet de mettre vos recettes
        
        public AnalyzerRecipes()
        {
        this.addRecipe(ItemRegister.itemADNofFrog, ItemRegister.itemSevewithmosquito, new ItemStack(BlockRegister.BlockBarriere)); //Ajout d'une recette, on fait un bloc de diamant à partie de deux pommes et une flèche
        }
        
        @SuppressWarnings("unchecked")
        public void addRecipe(ItemStack stack1, ItemStack stack2, ItemStack stack3) //Cette fonction de comprend que des ItemStack, c'est celle qui ajoute les recettes à la HashMap
        {
        ItemStack[] stackList = new ItemStack[]{stack1, stack2};
        this.smeltingList.put(stackList, stack3);
        }
        
               public void addRecipe(Item item1, Item item2, ItemStack stack) //1er cas
        {
        this.addRecipe(new ItemStack(item1), new ItemStack(item2), stack);
        }
        
               public ItemStack getSmeltingResult(ItemStack[] stack) //En argument : un tableau avec le contenu des trois slots d'input
          {
              Iterator iterator = this.smeltingList.entrySet().iterator();
              Entry entry;
        
              do
              {
                  if (!iterator.hasNext()) // Si il n'y a plus de recettes dans la liste
                  {
                      return null; //Il n'y a pas de recette correspondante
                  }
                      entry = (Entry)iterator.next(); //prend la recette suivante
                  }
                  while (!this.isSameKey(stack, (ItemStack[])entry.getKey())); //Check si le tableau passé en argument correspond à celui de la recette, vous avez une erreur ici, on crée la fonction tout de suite.
        
                  return (ItemStack)entry.getValue(); //retourne l'itemstack : resultat de la recette
           }
        
               private boolean isSameKey(ItemStack[] stackList, ItemStack[] stackList2)
          {
          boolean isSame = false; //Au début ce n'est pas la même
          for(int i=0; i<=1; i++) // Pour les 3 items
          {
          if(stackList*.getItem() == stackList2*.getItem()) //On vérifie si ce sont les même
          {
          isSame = true; // Si c'est le cas alors isSame vaut true
          }
          else
          {
          return false; //Si un seul n'est pas bon, on cherche pas, c'est pas la bonne recette
          }
          }
          return isSame;
          }
        
               public Map getSmeltingList()
          {
                  return this.smeltingList;
               }
        
               public static AnalyzerRecipes smelting()
               {
                return smeltingBase;
               }
        }
        
        

        BlockRegister  (J’enregistre tout mes blocks au même endroits ) 🙂

        public class BlockRegister
        {
        
           public static Block BlockBarriere;
           public static Block BlockTronc;
           public static Block BlockFeuille;
           public static Block BlockPousse;
           public static Block BlockAnalyzer;
           public static Block BlockAmbre;
        
           public static void register()
           {
            BlockBarriere = new BlockBarriere(Material.rock).setCreativeTab(CreativeTabs.tabBlock).setBlockTextureName(ModMinecraft.MODID + ":blockBarriere");
               BlockTronc = new BlockTronc().setBlockName("blockTronc").setCreativeTab(CreativeTabs.tabBlock).setHardness(2.0F).setBlockTextureName(ModMinecraft.MODID + ":blockTronc");
               BlockFeuille = new BlockFeuille().setBlockName("blockFeuille").setCreativeTab(CreativeTabs.tabBlock).setHardness(0.1F).setBlockTextureName(ModMinecraft.MODID + ":blockFeuille");
               BlockPousse = new BlockPousse().setBlockName("blockPousse").setHardness(0.5F).setBlockTextureName(ModMinecraft.MODID + ":blockPousse");
               BlockAnalyzer = new BlockAnalyzer().setCreativeTab(CreativeTabs.tabBlock);
               BlockAmbre = new BlockAmbre().setCreativeTab(CreativeTabs.tabBlock);
        
               GameRegistry.registerBlock(BlockAnalyzer, "block_analyzer");
               GameRegistry.registerBlock(BlockBarriere, "block_barriere");
               GameRegistry.registerBlock(BlockTronc, "block_tronc");
               GameRegistry.registerBlock(BlockFeuille, "block_feuille");
               GameRegistry.registerBlock(BlockPousse, "block_pousse");
               GameRegistry.registerBlock(BlockAmbre, "block_ambre");
        
           }
        }
        

        ContainerAnalyzer

        package mod.common.block;
        
        import mod.common.block.entity.TileEntityAnalyzer;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.entity.player.InventoryPlayer;
        import net.minecraft.inventory.Container;
        import net.minecraft.inventory.Slot;
        import net.minecraft.item.ItemStack;
        
        public class ContainerAnalyzer extends Container {
        
        private TileEntityAnalyzer tileAnalyzer;
        
        public ContainerAnalyzer(TileEntityAnalyzer tile, InventoryPlayer inventory)
        {
               this.tileAnalyzer= tile;
               this.addSlotToContainer(new Slot(tile, 0, 49, 75)); //Lancez votre jeu en debug pour calibrer vos slots
               this.addSlotToContainer(new Slot(tile, 2, 129, 75));
               this.addSlotToContainer(new SlotResult(tile, 3, 89, 135)); //Ici c'est un slot que j'ai créer, on le fera après
               this.bindPlayerInventory(inventory); //Les containers ont été vus dans un tutoriel de robin, merci de d'y référer
        }
        
        @Override
        public boolean canInteractWith(EntityPlayer player) {
        return this.tileAnalyzer.isUseableByPlayer(player);
        }
        
        private void bindPlayerInventory(InventoryPlayer inventory)
        {
        int i;
        for (i = 0; i < 3; ++i)
               {
                   for (int j = 0; j < 9; ++j)
                   {
                       this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 17 + j * 18, 171 + i * 18));
                   }
               }
        
               for (i = 0; i < 9; ++i)
               {
                   this.addSlotToContainer(new Slot(inventory, i, 17 + i * 18, 229));
               }
        }
        
        public ItemStack transferStackInSlot(EntityPlayer player, int quantity)
           {
               ItemStack itemstack = null;
               Slot slot = (Slot)this.inventorySlots.get(quantity);
        
               if (slot != null && slot.getHasStack())
               {
                   ItemStack itemstack1 = slot.getStack();
                   itemstack = itemstack1.copy();
        
                   if (quantity < this.tileAnalyzer.getSizeInventory())
                   {
                       if (!this.mergeItemStack(itemstack1, this.tileAnalyzer.getSizeInventory(), this.inventorySlots.size(), true))
                       {
                           return null;
                       }
                   }
                   else if (!this.mergeItemStack(itemstack1, 0, this.tileAnalyzer.getSizeInventory(), false))
                   {
                       return null;
                   }
        
                   if (itemstack1.stackSize == 0)
                   {
                       slot.putStack((ItemStack)null);
                   }
                   else
                   {
                       slot.onSlotChanged();
                   }
               }
        
               return itemstack;
           }
        
        public void onContainerClosed(EntityPlayer player)
           {
               super.onContainerClosed(player);
               this.tileAnalyzer.closeInventory();
           }
        }
        
        

        GuiAnalyzer

        package mod.common.block;
        
        import org.lwjgl.opengl.GL11;
        
        import mod.ModMinecraft;
        import mod.common.block.entity.TileEntityAnalyzer;
        import net.minecraft.client.gui.inventory.GuiContainer;
        import net.minecraft.entity.player.InventoryPlayer;
        import net.minecraft.inventory.IInventory;
        import net.minecraft.util.ResourceLocation;
        import net.minecraft.client.resources.I18n;
        
        public class GuiAnalyzer extends GuiContainer {
        
        private static final ResourceLocation texture = new ResourceLocation(ModMinecraft.MODID,"textures/gui/container/guiMachineTuto.png");
           @SuppressWarnings("unused")
        private TileEntityAnalyzer tileAnalyzer;
           private IInventory playerInv;
        
        public GuiAnalyzer(TileEntityAnalyzer tile, InventoryPlayer inventory)
        {
        super(new ContainerAnalyzer(tile, inventory));
               this.tileAnalyzer = tile;
               this.playerInv = inventory;
               this.allowUserInput = false;
               this.ySize = 256;
               this.xSize = 256;
        }
        
        @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, 0, this.xSize, this.ySize);
               this.drawTexturedModalRect(0, 0, 176, 14, 100 + 1, 16);
        
        }
        
        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);
           }
        
        }
        
        

        GuiHandler

        package mod.common.block;
        
        import mod.common.block.entity.TileEntityAnalyzer;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.tileentity.TileEntity;
        import net.minecraft.world.World;
        import cpw.mods.fml.common.network.IGuiHandler;
        
        public class GuiHandler implements IGuiHandler
        {
        @Override
        public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
        
        case 0:
        TileEntity tile = world.getTileEntity(x, y, z);
        if(tile instanceof TileEntityAnalyzer)
        {
        return new ContainerAnalyzer((TileEntityAnalyzer)tile, player.inventory);
        }
        }
        
        return null;
        }
        
        @Override
        public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
        
        case 0:
        TileEntity tile = world.getTileEntity(x, y, z);
        if(tile instanceof TileEntityAnalyzer)
        {
        return new GuiAnalyzer((TileEntityAnalyzer)tile, player.inventory);
        }
        }
        
        return null;
        }
        
        }
        

        SlotResult

        package mod.common.block;
        
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.inventory.IInventory;
        import net.minecraft.inventory.Slot;
        import net.minecraft.item.ItemStack;
        
        public class SlotResult extends Slot {
        
        public SlotResult(IInventory inventory, int id, int x, int y)
        {
        super(inventory, id, x, y);
        }
        
        @Override
        public boolean isItemValid(ItemStack stack) //Interdit la pose d'items dans le slot
           {
               return false;
           }
        
        public ItemStack decrStackSize(int amount)
           {
               return super.decrStackSize(amount);
           }
        
        public void onPickupFromSlot(EntityPlayer player, ItemStack stack)
           {
               super.onCrafting(stack);
               super.onPickupFromSlot(player, stack);
           }
        
        }
        
        

        TileEntityAnalyzer

        package mod.common.block.entity;
        
        import mod.common.block.AnalyzerRecipes;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.inventory.IInventory;
        import net.minecraft.item.ItemStack;
        import net.minecraft.nbt.NBTTagCompound;
        import net.minecraft.nbt.NBTTagList;
        import net.minecraft.tileentity.TileEntity;
        
        public class TileEntityAnalyzer extends TileEntity implements IInventory
        {
        private ItemStack[] contents = new ItemStack[3]; //0, 1 et 2 sont les inputs et 3 est l'output
        
        private int workingTime = 0; //Temps de cuisson actuel
        private int workingTimeNeeded = 200; //Temps de cuisson nécessaire
        
        @Override
           public void writeToNBT(NBTTagCompound compound)
           {
               super.writeToNBT(compound);
               NBTTagList nbttaglist = new NBTTagList();
        
               for (int i = 0; i < this.contents.length; ++i) //pour les slots
               {
                   if (this.contents* != null)
                   {
                       NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                       nbttagcompound1.setByte("Slot", (byte)i);
                       this.contents*.writeToNBT(nbttagcompound1);
                       nbttaglist.appendTag(nbttagcompound1);
                   }
               }
        
               compound.setTag("Items", nbttaglist);
               compound.setShort("workingTime",(short)this.workingTime); //On les enregistrent en short
               compound.setShort("workingTimeNeeded", (short)this.workingTimeNeeded);
           }
        
        @Override
           public void readFromNBT(NBTTagCompound compound)
           {
               super.readFromNBT(compound);
        
               NBTTagList nbttaglist = compound.getTagList("Items", 10);
               this.contents = new ItemStack[this.getSizeInventory()];
        
               for (int i = 0; i < nbttaglist.tagCount(); ++i) //Encore une fois pour les slots
               {
                   NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
                   int j = nbttagcompound1.getByte("Slot") & 255;
        
                   if (j >= 0 && j < this.contents.length)
                   {
                       this.contents[j] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
                   }
               }
        
               this.workingTime = compound.getShort("workingTime"); //On lit nos valeurs
               this.workingTimeNeeded = compound.getShort("workingTimeNeeded");
           }
        
        @Override
        public int getSizeInventory() { //Tout est dans le nom, retourne la taille de l'inventaire, pour notre bloc c'est quatre
        return this.contents.length;
        }
        
        @Override
        public ItemStack getStackInSlot(int slotIndex) { //Renvoie L'itemStack se trouvant dans le slot passé en argument
        return this.contents[slotIndex];
        }
        
        @Override //Comme dit plus haut, c'est expliqué dans le tutoriel de robin
        public ItemStack decrStackSize(int slotIndex, int amount) {
        if (this.contents[slotIndex] != null)
               {
                   ItemStack itemstack;
        
                   if (this.contents[slotIndex].stackSize <= amount)
                   {
                       itemstack = this.contents[slotIndex];
                       this.contents[slotIndex] = null;
                       this.markDirty();
                       return itemstack;
                   }
                   else
                   {
                       itemstack = this.contents[slotIndex].splitStack(amount);
        
                       if (this.contents[slotIndex].stackSize == 0)
                       {
                           this.contents[slotIndex] = null;
                       }
        
                       this.markDirty();
                       return itemstack;
                   }
               }
               else
               {
                   return null;
               }
        }
        
        @Override
        public ItemStack getStackInSlotOnClosing(int slotIndex) {
        if (this.contents[slotIndex] != null)
               {
                   ItemStack itemstack = this.contents[slotIndex];
                   this.contents[slotIndex] = null;
                   return itemstack;
               }
               else
               {
                   return null;
               }
        }
        
        @Override
        public void setInventorySlotContents(int slotIndex, ItemStack stack) {
        this.contents[slotIndex] = stack;
        
               if (stack != null && stack.stackSize > this.getInventoryStackLimit())
               {
                   stack.stackSize = this.getInventoryStackLimit();
               }
        
               this.markDirty();
        }
        
        @Override
        public String getInventoryName() { //J'ai décider qu'on ne pouvait pas mettre de nom custom
        return "tile.Analyzer";
        }
        
        @Override
        public boolean hasCustomInventoryName() {
        return false;
        }
        
        @Override
        public int getInventoryStackLimit() {
        return 64;
        }
        
        @Override
        public boolean isUseableByPlayer(EntityPlayer player) {
        return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
        }
        
        @Override
        public void openInventory() {
        
        }
        
        @Override
        public void closeInventory() {
        
        }
        
        @Override
        public boolean isItemValidForSlot(int slot, ItemStack stack) {
        return slot == 2 ? false : true;
        }
        
        public boolean isBurning()
           {
               return this.workingTime > 0;
           }
        
        private boolean canSmelt()
           {
               if (this.contents[0] == null || this.contents[1] == null) //Si les trois premiers slots sont vides
               {
                   return false; //On ne peut pas lancer le processus
               }
               else
               {
                   ItemStack itemstack = AnalyzerRecipes.smelting().getSmeltingResult(new ItemStack[]{this.contents[0], this.contents[1], this.contents[2]}); //Il y a une erreur ici, c'est normal, on y vient après (c'est pour les recettes)
                   if (itemstack == null) return false; //rapport avec les recettes
                   if (this.contents[2] == null) return true; //vérifications du slot d'output
                   if (!this.contents[2].isItemEqual(itemstack)) return false; //ici aussi
                   int result = contents[2].stackSize + itemstack.stackSize;
                   return result <= getInventoryStackLimit() && result <= this.contents[2].getMaxStackSize(); //Et là aussi décidément
               }
           }
        
        public void updateEntity() //Méthode exécutée à chaque tick
           {
            if(this.isBurning() && this.canSmelt()) //Si on "cuit" et que notre recette et toujours bonne, on continue
            {
            ++this.workingTime; //incrémentation
            }
            if(this.canSmelt() && !this.isBurning()) //Si la recette est bonne mais qu'elle n'est toujours pas lancée, on la lance
            {
            this.workingTime = 1; //La méthode isBurning() renverra true maintenant (1>0)
            }
            if(this.canSmelt() && this.workingTime == this.workingTimeNeeded) //Si on est arrivé au bout du temps de cuisson et que la recette est toujours bonne
            {
            this.smeltItem(); //on "cuit" les items
            this.workingTime = 0; //et on réinitialise le temps de cuisson
            }
               if(!this.canSmelt()) //Si la recette la recette n'est plus bonne
               {
                      this.workingTime= 0; //le temps de cuisson est de 0
               }
           }
        
        public void smeltItem()
           {
               if (this.canSmelt())
               {
                   ItemStack itemstack = AnalyzerRecipes.smelting().getSmeltingResult(new ItemStack[]{this.contents[0], this.contents[1], this.contents[2]}); //On récupère l'output de la recette
                    if (this.contents[2] == null) //Si il y a rien dans le slot d'output
                    {
                         this.contents[2] = itemstack.copy(); //On met directement l'ItemStack
                    }
                    else if (this.contents[2].getItem() == itemstack.getItem()) //Et si l'item que l'on veut est le même que celui qu'il y a déjà
                    {
                         this.contents[2].stackSize += itemstack.stackSize; // Alors ont incrémente l'ItemStack
                    }
        
                    –this.contents[0].stackSize; //On décrémente les slots d'input
                    –this.contents[1].stackSize;
        
                    if (this.contents[0].stackSize <= 0) //Si les slots sont vides, on remet à null le slot
                    {
                        this.contents[0] = null;
                    }
                    if (this.contents[1].stackSize <= 0)
                    {
                        this.contents[1] = null;
                    }
        
               }
           }
        }
        
        

        J’ai refais le tutoriel deux fois , donc j’ai tout supprimer et refait , je n’arrive a aucune erreur , mon bloc apparait en jeux sous le nom tile.null

        mais rien ne se passe quand je clic dessus 😕

        Oui ce gif est drôle.

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

          Classe principale ?

          1 réponse Dernière réponse Répondre Citer 0
          • FlowF Hors-ligne
            Flow
            dernière édition par

            package mod;
            
            import mod.common.CommonProxy;
            import mod.common.block.BlockRegister;
            import mod.common.block.entity.RegisterTileEntity;
            import mod.common.entity.EntityRegister;
            import mod.common.item.ItemRegister;
            import mod.common.item.recipe.RecipeRegister;
            import cpw.mods.fml.common.Mod;
            import cpw.mods.fml.common.Mod.EventHandler;
            import cpw.mods.fml.common.Mod.Instance;
            import cpw.mods.fml.common.SidedProxy;
            import cpw.mods.fml.common.event.FMLInitializationEvent;
            import cpw.mods.fml.common.event.FMLPostInitializationEvent;
            import cpw.mods.fml.common.event.FMLPreInitializationEvent;
            import cpw.mods.fml.common.registry.GameRegistry;
            
            @Mod(modid = ModMinecraft.MODID, name = ModMinecraft.Name, version = ModMinecraft.Version)
            public class ModMinecraft
            {
               public static final String MODID = "modminecraft";
               public static final String Name = "Mod Minecraft";
               public static final String Version = "1.0";
               @Instance("modminecraft")
               public static ModMinecraft instance;
            
               @SidedProxy(clientSide = "mod.client.ClientProxy", serverSide = "mod.common.CommonProxy")
               public static CommonProxy proxy;
            
               @EventHandler
               public void preInit(FMLPreInitializationEvent event)
               {
                   BlockRegister.register();
                   ItemRegister.register();
            
               }
            
               @EventHandler
               public void init(FMLInitializationEvent event)
               {
                   RegisterTileEntity.register();
                   RecipeRegister.register();
            
                   EntityRegister.register();
            
                   proxy.registerRender();
                   proxy.registerTileEntityRender();
               }
            
               @EventHandler
               public void postInit(FMLPostInitializationEvent event)
               {
            
               }
            }
            

            Oui ce gif est drôle.

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

              Tu n’as pas enregistré ton gui handler, si ?

              1 réponse Dernière réponse Répondre Citer 0
              • FlowF Hors-ligne
                Flow
                dernière édition par

                J’ai regardé le tuto et j’ai pas capter qu’il fallait l’enregistrer O.O c’est quoi la commande ? Je l’ai pas vu 😮

                Je viens de l’ajouter

                 NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
                

                J’édite pour dire si sa marche 🙂

                Voila lorsque je fais un click droit sa crash 😕

                A detailed walkthrough of the error, its code path and all known details is as follows:
                –-------------------------------------------------------------------------------------

                – Head –
                Stacktrace:
                at mod.common.block.entity.TileEntityAnalyzer.getStackInSlot(TileEntityAnalyzer.java:70)
                at net.minecraft.inventory.Slot.getStack(Slot.java:88)
                at net.minecraft.inventory.Container.getInventory(Container.java:67)
                at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:53)
                at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:88)
                at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
                at mod.common.block.BlockAnalyzer.onBlockActivated(BlockAnalyzer.java:94)
                at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
                at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
                at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)
                at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)
                at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)

                – Ticking connection –
                Details:
                Connection: net.minecraft.network.NetworkManager@4c6a43d
                Stacktrace:
                at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
                at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
                at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

                – System Details –
                Details:
                Minecraft Version: 1.7.10
                Operating System: Windows 8.1 (amd64) version 6.3
                Java Version: 1.7.0_75, Oracle Corporation
                Java VM Version: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
                Memory: 749920904 bytes (715 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
                FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 4 mods loaded, 4 mods active
                States: ‘U’ = Unloaded ‘L’ = Loaded ‘C’ = Constructed ‘H’ = Pre-initialized ‘I’ = Initialized ‘J’ = Post-initialized ‘A’ = Available ‘D’ = Disabled ‘E’ = Errored
                UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
                UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar) 
                UCHIJAAAA Forge{10.13.4.1448} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar) 
                UCHIJAAAA modminecraft{1.0} [Mod Minecraft] (bin) 
                GL info: ERROR RuntimeException: No OpenGL context found in the current thread.
                Profiler Position: N/A (disabled)
                Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                Player Count: 1 / 8; [EntityPlayerMP[‘Player812’/228, l=‘New World’, x=117,75, y=66,00, z=571,81]]
                Type: Integrated Server (map_client.txt)
                Is Modded: Definitely; Client brand changed to ‘fml,forge’
                [16:20:48] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:393]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2015-07-07_16.20.48-server.txt
                [16:20:48] [Client thread/INFO] [FML]: Waiting for the server to terminate/save.
                [16:20:48] [Server thread/INFO]: Saving worlds
                [16:20:48] [Server thread/INFO]: Saving chunks for level ‘New World’/Overworld
                [16:20:48] [Server thread/INFO]: Saving chunks for level ‘New World’/Nether
                [16:20:48] [Server thread/INFO]: Saving chunks for level ‘New World’/The End
                [16:20:48] [Server thread/INFO] [FML]: Unloading dimension 0
                [16:20:48] [Server thread/INFO] [FML]: Unloading dimension -1
                [16:20:48] [Server thread/INFO] [FML]: Unloading dimension 1
                [16:20:48] [Server thread/INFO] [FML]: Applying holder lookups
                [16:20:48] [Server thread/INFO] [FML]: Holder lookups applied
                [16:20:48] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
                [16:20:48] [Client thread/INFO] [FML]: Server terminated.
                AL lib: (EE) alc_cleanup: 1 device not closed

                La partie du code qui correspond

                @Override
                public ItemStack getStackInSlot(int slotIndex) { //Renvoie L'itemStack se trouvant dans le slot passé en argument
                return this.contents[slotIndex];
                }
                
                @Override //Comme dit plus haut, c'est expliqué dans le tutoriel de robin
                public ItemStack decrStackSize(int slotIndex, int amount) {
                if (this.contents[slotIndex] != null)
                       {
                           ItemStack itemstack;
                
                           if (this.contents[slotIndex].stackSize <= amount)
                           {
                               itemstack = this.contents[slotIndex];
                               this.contents[slotIndex] = null;
                               this.markDirty();
                               return itemstack;
                           }
                           else
                           {
                               itemstack = this.contents[slotIndex].splitStack(amount);
                
                               if (this.contents[slotIndex].stackSize == 0)
                               {
                                   this.contents[slotIndex] = null;
                               }
                
                               this.markDirty();
                               return itemstack;
                           }
                       }
                       else
                       {
                           return null;
                       }
                }
                

                Oui ce gif est drôle.

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

                  L’erreur est coupé non ? Il n’y a pas l’exception.

                  1 réponse Dernière réponse Répondre Citer 0
                  • FlowF Hors-ligne
                    Flow
                    dernière édition par

                    Oui excuse moi j’ai remarqué juste après avoir posté T_T J’ai éditer 🙂

                    Oui ce gif est drôle.

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

                      Il manque toujours l’exception, il n’y a que le stack trace.

                      1 réponse Dernière réponse Répondre Citer 0
                      • FlowF Hors-ligne
                        Flow
                        dernière édition par

                        [16:20:46] [Server thread/INFO]: Player812 joined the game
                        [16:20:48] [Server thread/ERROR]: Encountered an unexpected exception
                        net.minecraft.util.ReportedException: Ticking memory connection
                        at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:198) ~[NetworkSystem.class:?]
                        at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
                        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
                        at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
                        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
                        at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
                        Caused by: java.lang.ArrayIndexOutOfBoundsException: 3
                        at mod.common.block.entity.TileEntityAnalyzer.getStackInSlot(TileEntityAnalyzer.java:70) ~[TileEntityAnalyzer.class:?]
                        at net.minecraft.inventory.Slot.getStack(Slot.java:88) ~[Slot.class:?]
                        at net.minecraft.inventory.Container.getInventory(Container.java:67) ~[Container.class:?]
                        at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:53) ~[Container.class:?]
                        at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:88) ~[FMLNetworkHandler.class:?]
                        at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501) ~[EntityPlayer.class:?]
                        at mod.common.block.BlockAnalyzer.onBlockActivated(BlockAnalyzer.java:94) ~[BlockAnalyzer.class:?]
                        at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409) ~[ItemInWorldManager.class:?]
                        at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593) ~[NetHandlerPlayServer.class:?]
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
                        at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
                        at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
                        … 5 more
                        [16:20:48] [Server thread/ERROR]: This crash report has been saved to: C:\Users\Legrandfifou\Pictures\forge\eclipse\.\crash-reports\crash-2015-07-07_16.20.48-server.txt
                        [16:20:48] [Server thread/INFO]: Stopping server
                        [16:20:48] [Server thread/INFO]: Saving players
                        [16:20:48] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: –-- Minecraft Crash Report ----
                        // Would you like a cupcake?
                        
                        Time: 7/07/15 16:20
                        Description: Ticking memory connection
                        
                        java.lang.ArrayIndexOutOfBoundsException: 3
                        at mod.common.block.entity.TileEntityAnalyzer.getStackInSlot(TileEntityAnalyzer.java:70)
                        at net.minecraft.inventory.Slot.getStack(Slot.java:88)
                        at net.minecraft.inventory.Container.getInventory(Container.java:67)
                        at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:53)
                        at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:88)
                        at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
                        at mod.common.block.BlockAnalyzer.onBlockActivated(BlockAnalyzer.java:94)
                        at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
                        at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)
                        at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
                        at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
                        at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
                        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                        at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                        at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
                        
                        A detailed walkthrough of the error, its code path and all known details is as follows:
                        ---------------------------------------------------------------------------------------
                        
                        -- Head --
                        Stacktrace:
                        at mod.common.block.entity.TileEntityAnalyzer.getStackInSlot(TileEntityAnalyzer.java:70)
                        at net.minecraft.inventory.Slot.getStack(Slot.java:88)
                        at net.minecraft.inventory.Container.getInventory(Container.java:67)
                        at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:53)
                        at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:88)
                        at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
                        at mod.common.block.BlockAnalyzer.onBlockActivated(BlockAnalyzer.java:94)
                        at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:409)
                        at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593)
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74)
                        at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122)
                        at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
                        
                        -- Ticking connection --
                        Details:
                        Connection: net.minecraft.network.NetworkManager@4c6a43d
                        Stacktrace:
                        at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
                        at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
                        at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                        at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                        at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
                        
                        -- System Details --
                        Details:
                        Minecraft Version: 1.7.10
                        Operating System: Windows 8.1 (amd64) version 6.3
                        Java Version: 1.7.0_75, Oracle Corporation
                        Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                        Memory: 749920904 bytes (715 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
                        JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                        AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                        IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
                        FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1448 4 mods loaded, 4 mods active
                        States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
                        UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
                        UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
                        UCHIJAAAA Forge{10.13.4.1448} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1448-1.7.10.jar)
                        UCHIJAAAA modminecraft{1.0} [Mod Minecraft] (bin)
                        GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
                        Profiler Position: N/A (disabled)
                        Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
                        Player Count: 1 / 8; [EntityPlayerMP['Player812'/228, l='New World', x=117,75, y=66,00, z=571,81]]
                        Type: Integrated Server (map_client.txt)
                        Is Modded: Definitely; Client brand changed to 'fml,forge'
                        [16:20:48] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:393]: #@!@# Game crashed! Crash report saved to: #@!@# .\crash-reports\crash-2015-07-07_16.20.48-server.txt
                        [16:20:48] [Client thread/INFO] [FML]: Waiting for the server to terminate/save.
                        [16:20:48] [Server thread/INFO]: Saving worlds
                        [16:20:48] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
                        [16:20:48] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
                        [16:20:48] [Server thread/INFO]: Saving chunks for level 'New World'/The End
                        [16:20:48] [Server thread/INFO] [FML]: Unloading dimension 0
                        [16:20:48] [Server thread/INFO] [FML]: Unloading dimension -1
                        [16:20:48] [Server thread/INFO] [FML]: Unloading dimension 1
                        [16:20:48] [Server thread/INFO] [FML]: Applying holder lookups
                        [16:20:48] [Server thread/INFO] [FML]: Holder lookups applied
                        [16:20:48] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
                        [16:20:48] [Client thread/INFO] [FML]: Server terminated.
                        AL lib: (EE) alc_cleanup: 1 device not closed
                        

                        Oui ce gif est drôle.

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

                          Caused by: java.lang.ArrayIndexOutOfBoundsException: 3
                          at mod.common.block.entity.TileEntityAnalyzer.getStackInSlot(TileEntityAnalyzer.java:70) ~[TileEntityAnalyzer.class:?]
                          Ton tableau est plus petit que le nombre de slot que tu as ajouté.

                          1 réponse Dernière réponse Répondre Citer 1
                          • FlowF Hors-ligne
                            Flow
                            dernière édition par

                            Merci Robin  ! ::D

                            J’ai encore un petit problème avec la texture , voyez par vous même j’ai tout fait comme dans le tuto , et mon inventaire est décalé etc 😕

                            Ma texture

                            Probleme

                            Oui ce gif est drôle.

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

                              Faut changer les valeurs dans la fonction draw.

                              1 réponse Dernière réponse Répondre Citer 0
                              • FlowF Hors-ligne
                                Flow
                                dernière édition par

                                @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);

                                if(this.tileAnalyzer.isBurning())
                                {
                                int i = this.tileAnalyzer.getCookProgress();
                                this.drawTexturedModalRect(k + 47, l + 46, 0, 2, 100, i);
                                }
                                }

                                Les valeurs , 46 , 47 ?

                                Oui ce gif est drôle.

                                1 réponse Dernière réponse Répondre Citer 0
                                • SCAREXS Hors-ligne
                                  SCAREX
                                  dernière édition par

                                  oui, mais essaie de comprendre le code d’abord.

                                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                                  Pas de demandes de support par MP ni par skype SVP.
                                  Je n'accepte sur skype que l…

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • FlowF Hors-ligne
                                    Flow
                                    dernière édition par

                                    Ah ca na plus rien avoir avec
                                    " Examinons cette fonction :
                                    x correspond à la coordonnée x du gui (in-game) où s’affichera la texture de la barre de progression.
                                    y correspond à la coordonnée y du gui (in-game) où s’affichera la texture de la barre de progression.
                                    u correspond à la position x de votre barre de progression sur votre texture (dans les ressources, l’image .png).
                                    v correspond à la position y de votre barre de progression sur votre texture (dans les ressources, l’image .png).
                                    width correspond à la largeur du morceau de texture que vous voulez afficher.
                                    height correspond à la hauteur du morceau de texture que vous voulez afficher." Du coup /: J’ai tout réaligner mais il ne reste plus que l’inventaire en bas qu’il faudrait remonter je vais chercher 🙂

                                    Oui ce gif est drôle.

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • SCAREXS Hors-ligne
                                      SCAREX
                                      dernière édition par

                                      çà c’est géré au niveau du container lorsque tu rajoutes les slots.

                                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                                      Pas de demandes de support par MP ni par skype SVP.
                                      Je n'accepte sur skype que l…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • FlowF Hors-ligne
                                        Flow
                                        dernière édition par

                                        private void bindPlayerInventory(InventoryPlayer inventory)
                                        {
                                        int i;
                                        for (i = 0; i < 3; ++i)
                                        {
                                        for (int j = 0; j < 9; ++j)
                                        {
                                        this.addSlotToContainer(new Slot(inventory, j + i * 9 + 9, 17 + j * 18, 171 + i * 18));
                                        }
                                        }

                                        for (i = 0; i < 9; ++i)
                                        {
                                        this.addSlotToContainer(new Slot(inventory, i, 17 + i * 18, 229));
                                        }
                                        }

                                        Ce serait pas ca ?

                                        Oui ce gif est drôle.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • SCAREXS Hors-ligne
                                          SCAREX
                                          dernière édition par

                                          Si :
                                          new Slot(inventory, i, 17 + i * 18, 229)

                                          paramètres :

                                          • inventaire
                                          • index dans l’inventaire
                                          • x
                                          • y

                                          il suffit de modifier les 2 derniers pour avoir ce que tu veux.

                                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                                          Pas de demandes de support par MP ni par skype SVP.
                                          Je n'accepte sur skype que l…

                                          1 réponse Dernière réponse Répondre Citer 1
                                          • FlowF Hors-ligne
                                            Flow
                                            dernière édition par

                                            Nice ca marche nice ! Tout est bien positionné mais devine quoi ! La recette marche pas ca ne fait rien 😕

                                            AnalyzerRecipes

                                            
                                            package mod.common.block;
                                            
                                            import java.util.HashMap;
                                            import java.util.Iterator;
                                            import java.util.Map;
                                            import java.util.Map.Entry;
                                            
                                            import mod.common.item.ItemRegister;
                                            import net.minecraft.item.Item;
                                            import net.minecraft.item.ItemStack;
                                            
                                            @SuppressWarnings("rawtypes")
                                            public class AnalyzerRecipes {
                                            
                                            private static final AnalyzerRecipes smeltingBase = new AnalyzerRecipes(); //Permet d'instancier votre classe car vous le l'instancierez nul part ailleur
                                            private Map smeltingList = new HashMap(); //Ceci permet de mettre vos recettes
                                            
                                            public AnalyzerRecipes()
                                            {
                                            this.addRecipe(ItemRegister.itemADNofFrog, ItemRegister.itemSevewithmosquito, new ItemStack(BlockRegister.BlockBarriere)); //Ajout d'une recette, on fait un bloc de diamant à partie de deux pommes et une flèche
                                            }
                                            
                                            @SuppressWarnings("unchecked")
                                            public void addRecipe(ItemStack stack1, ItemStack stack2, ItemStack stack3) //Cette fonction de comprend que des ItemStack, c'est celle qui ajoute les recettes à la HashMap
                                            {
                                            ItemStack[] stackList = new ItemStack[]{stack1, stack2};
                                            this.smeltingList.put(stackList, stack3);
                                            }
                                            
                                            public void addRecipe(Item item1, Item item2, ItemStack stack) //1er cas
                                            {
                                            this.addRecipe(new ItemStack(item1), new ItemStack(item2), stack);
                                            }
                                            
                                            public ItemStack getSmeltingResult(ItemStack[] stack) //En argument : un tableau avec le contenu des trois slots d'input
                                            {
                                            Iterator iterator = this.smeltingList.entrySet().iterator();
                                            Entry entry;
                                            
                                            do
                                            {
                                            if (!iterator.hasNext()) // Si il n'y a plus de recettes dans la liste
                                            {
                                            return null; //Il n'y a pas de recette correspondante
                                            }
                                            entry = (Entry)iterator.next(); //prend la recette suivante
                                            }
                                            while (!this.isSameKey(stack, (ItemStack[])entry.getKey())); //Check si le tableau passé en argument correspond à celui de la recette, vous avez une erreur ici, on crée la fonction tout de suite.
                                            
                                            return (ItemStack)entry.getValue(); //retourne l'itemstack : resultat de la recette
                                            }
                                            
                                            private boolean isSameKey(ItemStack[] stackList, ItemStack[] stackList2)
                                            {
                                            boolean isSame = false; //Au début ce n'est pas la même
                                            for(int i=0; i<=1; i++) // Pour les 3 items
                                            {
                                            if(stackList*.getItem() == stackList2*.getItem()) //On vérifie si ce sont les même
                                            {
                                            isSame = true; // Si c'est le cas alors isSame vaut true
                                            }
                                            else
                                            {
                                            return false; //Si un seul n'est pas bon, on cherche pas, c'est pas la bonne recette
                                            }
                                            }
                                            return isSame;
                                            }
                                            
                                            public Map getSmeltingList()
                                            {
                                            return this.smeltingList;
                                            }
                                            
                                            public static AnalyzerRecipes smelting()
                                            {
                                            return smeltingBase;
                                            }
                                            }
                                            
                                            

                                            Oui ce gif est drôle.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 11
                                            • 12
                                            • 2 / 12
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB