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.
    • 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