MFF

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

    Gui/Container/Update Item Tick

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    32 Messages 5 Publieurs 5.2k Vues 1 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.
    • SpyManS Hors-ligne
      SpyMan
      dernière édition par

      c’est déjà fait

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

        Envoi toutes tes classes

        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
        • SpyManS Hors-ligne
          SpyMan
          dernière édition par robin4002

          class.zip

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

            Dans le container tu as oublié le write

            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
            • SpyManS Hors-ligne
              SpyMan
              dernière édition par

              Où sa ?

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

                Dans la classe du container

                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
                • SpyManS Hors-ligne
                  SpyMan
                  dernière édition par

                  pourtant elle est bien appelé car dans la fonction oncontainerClosed j’appelle la fonction closeInventoty qui elle appelle la fonction writeToNBT

                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.inventory.IInventory;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.item.crafting.FurnaceRecipes;
                  import net.minecraft.nbt.NBTTagCompound;
                  import net.minecraft.nbt.NBTTagList;
                  import net.minecraft.tileentity.TileEntityFurnace;
                  import net.minecraft.util.text.ITextComponent;
                  import net.minecraft.world.World;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  import net.spyman.utils.common.items.ItemPortableFurnace;
                  
                  import javax.annotation.Nullable;
                  
                  public class InventoryItemPortableFurnace implements IInventory
                  {
                     private ItemStack[] inventorySlots = new ItemStack[3];
                     public int workingTime = 0;
                     public int workingTimeNeeded = 200;
                     public int workingTimeNeededDefault = 200;
                     public int burnTime = 0;
                     public int burnTimeTotal = 0;
                     public int inventorySize = inventorySlots.length;
                     public int fuelSlot = 1;
                     public int outputSlot = 2;
                     public int inputSlot = 0;
                  
                     public InventoryItemPortableFurnace(ItemStack itemStack)
                     {
                         if (!itemStack.hasTagCompound())
                         {
                             itemStack.setTagCompound(new NBTTagCompound());
                         }
                  
                         this.readFromNBT(itemStack.getTagCompound());
                     }
                  
                     public void readFromNBT(NBTTagCompound compound)
                     {
                         NBTTagList nbttaglist = compound.getTagList("SpyUtilsItems", 10);
                         this.inventorySlots = new ItemStack[this.getSizeInventory()];
                  
                         for (int i = 0; i < nbttaglist.tagCount(); ++i)
                         {
                             NBTTagCompound nbtTagCompound1 = nbttaglist.getCompoundTagAt(i);
                             int j = nbtTagCompound1.getByte("Slot") & 255;
                  
                             if (j >= 0 && j < this.inventorySlots.length)
                             {
                                 this.inventorySlots[j] = ItemStack.loadItemStackFromNBT(nbtTagCompound1);
                             }
                         }
                         this.workingTime = compound.getShort("workingTime");
                         this.burnTime = compound.getShort("burnTime");
                         this.burnTimeTotal = compound.getShort("burnTimeTotal");
                     }
                  
                     public NBTTagCompound writeToNBT(NBTTagCompound compound)
                     {
                         NBTTagList nbttaglist = new NBTTagList();
                         for (int i = 0; i < this.inventorySlots.length; ++i)
                         {
                             if (this.inventorySlots* != null)
                             {
                                 NBTTagCompound nbtTagCompound1 = new NBTTagCompound();
                                 nbtTagCompound1.setByte("Slot", (byte) i);
                                 this.inventorySlots*.writeToNBT(nbtTagCompound1);
                                 nbttaglist.appendTag(nbtTagCompound1);
                  
                             }
                         }
                         compound.setTag("SpyUtilsItems", nbttaglist);
                         compound.setShort("workingTime", (short) this.workingTime);
                         compound.setShort("burnTime", (short) this.burnTime);
                         compound.setShort("burnTimeTotal", (short) this.burnTimeTotal);
                         return null;
                     }
                  
                     @Override
                     public int getSizeInventory()
                     {
                         return this.inventorySize;
                     }
                  
                     @Nullable
                     @Override
                     public ItemStack getStackInSlot(int index)
                     {
                         return this.inventorySlots[index];
                     }
                  
                     @Nullable
                     @Override
                     public ItemStack decrStackSize(int index, int amount)
                     {
                         if (this.inventorySlots[index] != null)
                         {
                             ItemStack itemstack;
                  
                             if (this.inventorySlots[index].stackSize <= amount)
                             {
                                 itemstack = this.inventorySlots[index];
                                 this.inventorySlots[index] = null;
                                 this.markDirty();
                                 return itemstack;
                             }
                             else
                             {
                                 itemstack = this.inventorySlots[index].splitStack(amount);
                  
                                 if (this.inventorySlots[index].stackSize == 0)
                                 {
                                     this.inventorySlots[index] = null;
                                 }
                                 this.markDirty();
                                 return itemstack;
                             }
                         }
                         else
                         {
                             return null;
                         }
                     }
                  
                     /**
                      * Used to update item.
                      *
                      * @param stack
                      * @param worldIn
                      * @param entityIn
                      * @param itemSlot
                      * @param isSelected
                      */
                     public void updateItem(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
                     {
                         if (this.burnTime > 0)
                         {
                             burnTime–;
                         }
                         if (this.canSmelt())
                         {
                             if (this.burnTime <= 0)
                             {
                                 int time = TileEntityFurnace.getItemBurnTime(inventorySlots[1]);
                  
                                 if (time > 0)
                                 {
                                     this.decrStackSize(1, 1);
                                     this.burnTimeTotal = time;
                                     this.burnTime = time;
                                 }
                             }
                             if (burnTime > 0)
                             {
                                 workingTime++;
                             }
                         }
                         if (this.workingTime >= this.workingTimeNeeded)
                         {
                             this.smeltItem();
                             this.workingTime = 0;
                         }
                         if (!this.canSmelt() || burnTime <= 0)
                         {
                             this.workingTime = 0;
                         }
                     }
                  
                     @Nullable
                     @Override
                     public ItemStack removeStackFromSlot(int index)
                     {
                         return null;
                     }
                  
                     @Override
                     public void setInventorySlotContents(int index, @Nullable ItemStack stack)
                     {
                         this.inventorySlots[index] = stack;
                     }
                  
                     @Override
                     public int getInventoryStackLimit()
                     {
                         return 64;
                     }
                  
                     @Override
                     public void markDirty()
                     {
                  
                     }
                  
                     @Override
                     public boolean isUseableByPlayer(EntityPlayer player)
                     {
                         return true;
                     }
                  
                     @Override
                     public void openInventory(EntityPlayer player)
                     {
                  
                     }
                  
                     @Override
                     public void closeInventory(EntityPlayer player)
                     {
                         this.writeToNBT(new NBTTagCompound());
                     }
                  
                     @Override
                     public boolean isItemValidForSlot(int index, ItemStack stack)
                     {
                         return !(stack.getItem() instanceof ItemPortableFurnace);
                     }
                  
                     public boolean isBurning()
                     {
                         return this.workingTime > 0;
                     }
                  
                     protected boolean canSmelt()
                     {
                         if (this.inventorySlots[this.inputSlot] == null)
                         {
                             return false;
                         }
                         else
                         {
                             ItemStack itemstack = FurnaceRecipes.instance().getSmeltingResult(inventorySlots[this.inputSlot]);
                  
                             if (itemstack == null)
                             {
                                 return false;
                             }
                             if (this.inventorySlots[this.outputSlot] == null)
                             {
                                 return true;
                             }
                             if (!this.inventorySlots[this.outputSlot].isItemEqual(itemstack))
                             {
                                 return false;
                             }
                  
                             int result = inventorySlots[this.outputSlot].stackSize + itemstack.stackSize;
                             return result <= getInventoryStackLimit() && result <= this.inventorySlots[2].getMaxStackSize();
                         }
                     }
                  
                     public void smeltItem()
                     {
                         if (this.canSmelt())
                         {
                             ItemStack itemstack = FurnaceRecipes.instance().getSmeltingResult(inventorySlots[this.inputSlot]);
                             if (this.inventorySlots[this.outputSlot] == null)
                             {
                                 this.inventorySlots[this.outputSlot] = itemstack.copy();
                             }
                             else if (this.inventorySlots[this.outputSlot].getItem() == itemstack.getItem())
                             {
                                 this.inventorySlots[this.outputSlot].stackSize += itemstack.stackSize;
                             }
                             this.decrStackSize(0, 1);
                         }
                     }
                  
                     @Override
                     public int getField(int id)
                     {
                         return 0;
                     }
                  
                     @Override
                     public void setField(int id, int value)
                     {
                  
                     }
                  
                     @Override
                     public int getFieldCount()
                     {
                         return 0;
                     }
                  
                     @Override
                     public void clear()
                     {
                  
                     }
                  
                     @Override
                     public String getName()
                     {
                         return "item.container.portable_furnace.gui";
                     }
                  
                     @Override
                     public boolean hasCustomName()
                     {
                         return false;
                     }
                  
                     @Override
                     public ITextComponent getDisplayName()
                     {
                         return null;
                     }
                  
                     @SideOnly(Side.CLIENT)
                     public int getSmeltProcess()
                     {
                         return this.workingTime * 24 / this.workingTimeNeeded;
                     }
                  
                     @SideOnly(Side.CLIENT)
                     public int getBurnTime()
                     {
                         return this.burnTime * 14 / this.burnTimeTotal;
                     }
                  }
                  
                  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;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  import net.spyman.utils.common.container.slot.SlotPortableFurnace;
                  import net.spyman.utils.common.inventory.InventoryItemPortableFurnace;
                  import net.spyman.utils.common.items.ItemPortableFurnace;
                  
                  public class ContainerPortableFurnace extends Container
                  {
                     InventoryItemPortableFurnace inventory;
                     private int workingTime;
                     private int workingTimeNeeded;
                  
                     public ContainerPortableFurnace(InventoryPlayer playerInv, InventoryItemPortableFurnace inv)
                     {
                         this.inventory = inv;
                         int j;
                         int k;
                  
                         this.addSlotToContainer(new Slot(this.inventory, 0, 56, 17));                   // input
                         this.addSlotToContainer(new Slot(this.inventory, 1, 56, 53));                   // coal
                         this.addSlotToContainer(new SlotPortableFurnace(this.inventory, 2, 116, 35));   // output
                  
                         this.bindPlayerInventory(playerInv);
                     }
                  
                     @Override
                     public boolean canInteractWith(EntityPlayer playerIn)
                     {
                         return true;
                     }
                  
                     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, 8 + j * 18, 84 + i * 18));
                             }
                         }
                  
                         for (i = 0; i < 9; ++i)
                         {
                             this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142));
                         }
                     }
                  
                     @Override
                     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.inventory.getSizeInventory())
                             {
                                 if (!this.mergeItemStack(itemStack1, this.inventory.getSizeInventory(), this.inventorySlots.size(), true))
                                 {
                                     return null;
                                 }
                             }
                             else if (!this.mergeItemStack(itemStack1, 0, this.inventory.getSizeInventory(), false))
                             {
                                 return null;
                             }
                  
                             if (itemStack1.stackSize == 0)
                             {
                                 slot.putStack((ItemStack)null);
                             }
                             else
                             {
                                 slot.onSlotChanged();
                             }
                         }
                         return itemstack;
                     }
                  
                     @Override
                     public void onContainerClosed(EntityPlayer player)
                     {
                         super.onContainerClosed(player);
                         this.inventory.closeInventory(player);
                     }
                  
                     @SideOnly(Side.CLIENT)
                     public void updateProgressBar(int id, int value)
                     {
                         if(id == 0)
                         {
                             this.inventory.workingTime = value;
                         }
                  
                         if(id == 1)
                         {
                             this.inventory.workingTimeNeeded = value;
                         }
                     }
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • SCAREXS Hors-ligne
                    SCAREX
                    dernière édition par

                    Effectivement je vais tester ça de mon côté

                    EDDIT : est-ce que ce serai possible d’avoir le Gui pour tester ?

                    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
                    • SpyManS Hors-ligne
                      SpyMan
                      dernière édition par robin4002

                      src.zip

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

                        please!!!

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

                          Bon bah tempis Merci quand meme de votre aide mais visiblement il n’y a pas de solution
                          Je le passe en resolu

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB