• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved CustomContainer : modifier les maxStackSize

    1.7.x
    1.7.10
    3
    8
    1151
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Myrilandel
      Myrilandel last edited by

      Bonjour à tous !

      J’écris ce petit topic pour vous demander vos avis ou vos idées concernant un partie de mon mod.

      Pour faire simple, la totalité de mes Items ont un MaxStackSize de 1 et je souhaiterai faire un block (équivalent à un gros chest peut être ?) dans lequel les itemstack pourraient atteindre la size de 64 (Le top serait que lorsqu’un joueur retire un objet, un seul itemstack de size 1 lui est rendu).

      Pour l’instant la seule idée que j’ai eu serait plutot de faire un bloc avec GUI et tile entity qui peut “recevoir” les objets un par un. Il détecte l’objet et incrémente une variable (associée à l’objet détecté) dans la tileEntity. Inversement, le block serait capable de rendre les objets un par un (avec un bouton “retrait” sur le GUI par exemple ?) et décrémenterait la variable associée dans la tileEntity.

      Le soucis est que ça fait beaucoup puisque chaque item aurait une variable et un bouton associé …
      Du coup je suis ouvert à toutes vos propositions 😄

      Je vous remercie d’avance et je vous souhaite une bonne journée !
      ~Myrilandel

      1 Reply Last reply Reply Quote 0
      • AymericRed
        AymericRed last edited by

        Même si tu as mis setMaxStackSize, quand tu fait lestack.stackSize = quelque chose, la limite n’es pas vérifiée donc tu n’as pas besoin de tembeter

        Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 Reply Last reply Reply Quote 0
        • Myrilandel
          Myrilandel last edited by

          Salut AymericRed et merci de ta réponse.

          En fait, j’aimerai effectivement que le stackSize augmente dans le coffre indépendemment du MaxStackSize.
          Seulement comme ce coffre est associé à un Container, le container vérifie que le StackSize est bien inférieur ou égal au MaxStackSize de l’objet (dans les méthodes slotClick(), mergeItemStack(), isStackable() …).
          Du coup je me demande si ça vaudrait plus le coup de redéfinir les méthodes ou plutot de partir sur une “Machine” avec des entrées/sorties.

          1 Reply Last reply Reply Quote 0
          • Deleted
            Deleted last edited by

            Ou sinon, tu peux te servir des metadatas. Genre si ton item se trouve hors de ton container, metadata 0, sinon c’est qu’il est dedans, alors metadata 1. Ensuite tu override la méthode onUpdate(blabla) et tu vérifies ton metadata, et en fonction de cela tu adaptes la paramètre de setMaxStackSize. Y’a sûrement une autre méthode moins dégueu après, j’pense ^^’

            1 Reply Last reply Reply Quote 0
            • AymericRed
              AymericRed last edited by

              Non sinon redéfinir les fonctions peut être un bon moyen, tu les copies dans ton Container, tu fais ctrl+f (recherche) et tu recherches stackSize et à chaque endroit, si ça gène tu enlèves.

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

              1 Reply Last reply Reply Quote 1
              • Myrilandel
                Myrilandel last edited by

                Salut Plaigon, merci à toi aussi !
                C’est vrai que je n’avais pas pensé à utiliser les metadatas pour ça. L’ennuie c’est que j’ai pas mal d’Items dans le mod et ça risque de me faire une sacrée dose de copier/coller, je garde quand même l’idée dans un coin de ma tête ça me sera certainement utile à un moment donné 😉

                Je suis en train de tester les redéfinitions de méthodes, je pars sur un customContainer pour pas que ça fasse trop fouilli, je vous tiens au courant de ce que ça donne !

                Hésitez pas si vous avez d’autres idées pendant ce temps, je suis preneur 😉
                Merci pour votre aide en tout cas !

                1 Reply Last reply Reply Quote 0
                • AymericRed
                  AymericRed last edited by

                  Ah et aussi, pendant que j’y pense, si tu retires les vérifications, les limites de l’inventaire du joueur ne seront pas check non plus, il faudrait que tu vérifies si le slot est de l’inv du joueur ou de ton coffre au début des fonctions (si possible) et puis appelé la fonction de la superclass si c’est l’inv vanilla.

                  Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                  AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                  Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                  Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                  1 Reply Last reply Reply Quote 0
                  • Myrilandel
                    Myrilandel last edited by

                    Justement j’en viens à cette étape 😉
                    Pour l’instant les stacks s’empilent bien dans le coffre et il est uniquement possible de déposer et retirer les items un par un.
                    Il ne reste plus qu’à faire en sorte qu’ils ne se stackent pas dans l’inventaire du joueur et le tour est joué !
                    Quand ce sera fini je posterai la métode dans le post (au cas où ça puisse servir à quelqu’un… Et si j’y arrive !)

                    Par contre j’ai un petit bug qui apparait de temps à autres (je n’arrive pas bien à cerner à quel moment). Mais en gros au bout d’un certains nombre de manipulation dans le coffre, je ne peux plus déplacer aucun item avec la souris (que ce soit de l’inventaire du joueur vers le coffre ou inversement. Les déplacements au sein du coffre ou au sein de l’inventaire du joueur sont eux aussi impossibles).  Si jamais vous avez des idées !

                    A plus tard

                    EDIT : Voilà, tout est modifié et tout fonctionne ! Encore merci pour votre aide 🙂
                    Je pose ici les redéfinitions des méthodes si quelqu’un en a besoin !
                    :::

                    
                    public ItemStack transferStackInSlot(EntityPlayer player, int slotIndex)
                       {
                        /* On modifie légèrement en ajoutant un test (slot.inventory instanceof InventoryPlayer)
                        * Les transfert via shift + Click seront donc possible uniquement dans le sens
                        * inventaire du joueur -> Coffre.
                        * Cela permet d'empiler les stacks automatiquement dans le coffre et de ne pas pouvoir retirer
                        * d'itemStacks de stackSize > 1.
                        */
                    
                           ItemStack itemstack = null;
                           Slot slot = (Slot)this.inventorySlots.get(slotIndex);
                    
                           if(slot != null && slot.getHasStack() && slot.inventory instanceof InventoryPlayer)
                           {
                               ItemStack itemstack1 = slot.getStack();
                               itemstack = itemstack1.copy();
                    
                               if(slotIndex < this.tileEntityBanque.getSizeInventory())
                               {
                                   if(!this.mergeItemStack(itemstack1, this.tileEntityBanque.getSizeInventory(), this.inventorySlots.size(), true))
                                    return null;
                               }
                               else
                                if(!this.mergeItemStack(itemstack1, 0, this.tileEntityBanque.getSizeInventory(), false))
                                return null;
                    
                               if(itemstack1.stackSize == 0)
                                   slot.putStack((ItemStack)null);
                               else
                                   slot.onSlotChanged();
                           }
                           return itemstack;
                       }
                    
                    @Override
                       public ItemStack slotClick(int indexSlot, int mouseButon, int function, EntityPlayer entityPlayer)
                       {
                        /* On redéfinie la fonction de telle sorte à ce que les itemStacks soient déposées ou retirées par pile de 1.
                        * Si l'itemStack est déposé dans le coffre, il peut se stacker avec les items déjà présents et atteindre une
                        * stackSize de 64.
                        * Si l'itemStack est déposé dans l'inventaire du joueur, il ne peut pas avoir de stackSize > 1\.
                        */
                    
                           ItemStack itemstack = null;
                           InventoryPlayer inventoryplayer = entityPlayer.inventory;
                           int i1;
                           ItemStack itemstack3;
                    
                           if (function == 5)
                           {
                               int l = this.field_94536_g;
                               this.field_94536_g = func_94532_c(mouseButon);
                    
                               if ((l != 1 || this.field_94536_g != 2) && l != this.field_94536_g)
                               {
                                   this.func_94533_d();
                               }
                               else if (inventoryplayer.getItemStack() == null)
                               {
                                   this.func_94533_d();
                               }
                               else if (this.field_94536_g == 0)
                               {
                                   this.field_94535_f = func_94529_b(mouseButon);
                    
                                   if (func_94528_d(this.field_94535_f))
                                   {
                                       this.field_94536_g = 1;
                                       this.field_94537_h.clear();
                                   }
                                   else
                                   {
                                       this.func_94533_d();
                                   }
                               }
                               else if (this.field_94536_g == 1)
                               {
                                   Slot slot = (Slot)this.inventorySlots.get(indexSlot);
                    
                                   if (slot != null && func_94527_a(slot, inventoryplayer.getItemStack(), true) && slot.isItemValid(inventoryplayer.getItemStack()) && inventoryplayer.getItemStack().stackSize > this.field_94537_h.size() && this.canDragIntoSlot(slot))
                                   {
                                       this.field_94537_h.add(slot);
                                   }
                               }
                               else if (this.field_94536_g == 2)
                               {
                                   if (!this.field_94537_h.isEmpty())
                                   {
                                       itemstack3 = inventoryplayer.getItemStack().copy();
                                       i1 = inventoryplayer.getItemStack().stackSize;
                                       Iterator iterator = this.field_94537_h.iterator();
                    
                                       while (iterator.hasNext())
                                       {
                                           Slot slot1 = (Slot)iterator.next();
                    
                                           if (slot1 != null && func_94527_a(slot1, inventoryplayer.getItemStack(), true) && slot1.isItemValid(inventoryplayer.getItemStack()) && inventoryplayer.getItemStack().stackSize >= this.field_94537_h.size() && this.canDragIntoSlot(slot1))
                                           {
                                               ItemStack itemstack1 = itemstack3.copy();
                                               int j1 = slot1.getHasStack() ? slot1.getStack().stackSize : 0;
                                               func_94525_a(this.field_94537_h, this.field_94535_f, itemstack1, j1);
                    
                                               if (itemstack1.stackSize > 64)
                                               {
                                                   itemstack1.stackSize = 64;
                                               }
                    
                                               if (itemstack1.stackSize > slot1.getSlotStackLimit())
                                               {
                                                   itemstack1.stackSize = slot1.getSlotStackLimit();
                                               }
                    
                                               i1 -= itemstack1.stackSize - j1;
                                               slot1.putStack(itemstack1);
                                           }
                                       }
                    
                                       itemstack3.stackSize = i1;
                    
                                       if (itemstack3.stackSize <= 0)
                                       {
                                           itemstack3 = null;
                                       }
                    
                                       inventoryplayer.setItemStack(itemstack3);
                                   }
                    
                                   this.func_94533_d();
                               }
                               else
                               {
                                   this.func_94533_d();
                               }
                           }
                           else if (this.field_94536_g != 0)
                           {
                               this.func_94533_d();
                           }
                           else
                           {
                               Slot slot2;
                               int l1;
                               ItemStack itemstack5;
                    
                               if ((function == 0 || function == 1) && (mouseButon == 0 || mouseButon == 1))
                               {
                                   if (indexSlot == -999)
                                   {
                                       if (inventoryplayer.getItemStack() != null && indexSlot == -999)
                                       {
                                           if (mouseButon == 0 || mouseButon == 1)
                                           {
                                               entityPlayer.dropPlayerItemWithRandomChoice(inventoryplayer.getItemStack().splitStack(1), true);
                    
                                               if (inventoryplayer.getItemStack().stackSize == 0)
                                               {
                                                   inventoryplayer.setItemStack((ItemStack)null);
                                               }
                                           }
                                       }
                                   }
                                   else if (function == 1)
                                   {
                                       if (indexSlot < 0)
                                       {
                                           return null;
                                       }
                    
                                       slot2 = (Slot)this.inventorySlots.get(indexSlot);
                    
                                       if (slot2 != null && slot2.canTakeStack(entityPlayer))
                                       {
                                           itemstack3 = this.transferStackInSlot(entityPlayer, indexSlot);
                    
                                           if (itemstack3 != null)
                                           {
                                               Item item = itemstack3.getItem();
                                               itemstack = itemstack3.copy();
                    
                                               if (slot2.getStack() != null && slot2.getStack().getItem() == item)
                                               {
                                                   this.retrySlotClick(indexSlot, mouseButon, true, entityPlayer);
                                               }
                                           }
                                       }
                                   }
                                   else
                                   {
                                       if (indexSlot < 0)
                                       {
                                           return null;
                                       }
                    
                                       slot2 = (Slot)this.inventorySlots.get(indexSlot);
                    
                                       if (slot2 != null)
                                       {
                                           itemstack3 = slot2.getStack();
                                           ItemStack itemstack4 = inventoryplayer.getItemStack();
                    
                                           if (itemstack3 != null)
                                           {
                                               itemstack = itemstack3.copy();
                                           }
                    
                                           if (itemstack3 == null)
                                           {
                                               if (itemstack4 != null && slot2.isItemValid(itemstack4))
                                               {
                                                   l1 = 1;//mouseButon == 0 ? itemstack4.stackSize : 1;
                    
                                                   if (l1 > slot2.getSlotStackLimit())
                                                   {
                                                       l1 = slot2.getSlotStackLimit();
                                                   }
                    
                                                   if (itemstack4.stackSize >= l1)
                                                   {
                                                       slot2.putStack(itemstack4.splitStack(l1));
                                                   }
                    
                                                   if (itemstack4.stackSize == 0)
                                                   {
                                                       inventoryplayer.setItemStack((ItemStack)null);
                                                   }
                                               }
                                           }
                                           else if (slot2.canTakeStack(entityPlayer))
                                           {
                                               if (itemstack4 == null)
                                               {
                                                   l1 = 1;//mouseButon == 0 ? itemstack3.stackSize : (itemstack3.stackSize + 1) / 2;
                                                   itemstack5 = slot2.decrStackSize(l1);
                                                   inventoryplayer.setItemStack(itemstack5);
                    
                                                   if (itemstack3.stackSize == 0)
                                                   {
                                                       slot2.putStack((ItemStack)null);
                                                   }
                    
                                                   slot2.onPickupFromSlot(entityPlayer, inventoryplayer.getItemStack());
                                               }
                                               else if (slot2.isItemValid(itemstack4))
                                               {
                                                   if (itemstack3.getItem() == itemstack4.getItem() && itemstack3.getItemDamage() == itemstack4.getItemDamage() && ItemStack.areItemStackTagsEqual(itemstack3, itemstack4))
                                                   {
                                                       l1 = 1;//mouseButon == 0 ? itemstack4.stackSize : 1;
                    
                                                       if (l1 > slot2.getSlotStackLimit() - itemstack3.stackSize)
                                                       {
                                                           l1 = slot2.getSlotStackLimit() - itemstack3.stackSize;
                                                       }
                    
                                                       if (l1 > itemstack4.getMaxStackSize() - itemstack3.stackSize)
                                                       {
                                                           l1 = itemstack4.getMaxStackSize() - itemstack3.stackSize;
                                                       }
                                                       //Partie Modifiée - START//
                                                       if(!(slot2.inventory == inventoryplayer)) {
                                                        l1 = 1;
                                                        itemstack4.splitStack(l1);
                                                        itemstack3.stackSize += l1;
                                                       }
                                                       else {
                                                        itemstack4.splitStack(l1);
                                                           slot2.onPickupFromSlot(entityPlayer, inventoryplayer.getItemStack());
                                                        inventoryplayer.setItemStack(itemstack4);
                                                       }
                    
                                                       if (itemstack4.stackSize == 0)
                                                       {
                                                           inventoryplayer.setItemStack((ItemStack)null);
                                                       }
                                                       //Partie Modifiée - END//
                                                   }
                                                   else if (itemstack4.stackSize <= slot2.getSlotStackLimit())
                                                   {
                                                       slot2.putStack(itemstack4);
                                                       inventoryplayer.setItemStack(itemstack3);
                                                   }
                                               }
                                               else if (itemstack3.getItem() == itemstack4.getItem() && itemstack4.getMaxStackSize() > 1 && (!itemstack3.getHasSubtypes() || itemstack3.getItemDamage() == itemstack4.getItemDamage()) && ItemStack.areItemStackTagsEqual(itemstack3, itemstack4))
                                               {
                                                   l1 = itemstack3.stackSize;
                    
                                                   if (l1 > 0 && l1 + itemstack4.stackSize <= itemstack4.getMaxStackSize())
                                                   {
                                                       itemstack4.stackSize += l1;
                                                       itemstack3 = slot2.decrStackSize(l1);
                    
                                                       if (itemstack3.stackSize == 0)
                                                       {
                                                           slot2.putStack((ItemStack)null);
                                                       }
                    
                                                       slot2.onPickupFromSlot(entityPlayer, inventoryplayer.getItemStack());
                                                   }
                                               }
                                           }
                    
                                           slot2.onSlotChanged();
                                       }
                                   }
                               }
                               else if (function == 2 && mouseButon >= 0 && mouseButon < 9)
                               {
                                   slot2 = (Slot)this.inventorySlots.get(indexSlot);
                    
                                   if (slot2.canTakeStack(entityPlayer))
                                   {
                                       itemstack3 = inventoryplayer.getStackInSlot(mouseButon);
                                       boolean flag = itemstack3 == null || slot2.inventory == inventoryplayer && slot2.isItemValid(itemstack3);
                                       l1 = -1;
                    
                                       if (!flag)
                                       {
                                           l1 = inventoryplayer.getFirstEmptyStack();
                                           flag |= l1 > -1;
                                       }
                    
                                       if (slot2.getHasStack() && flag)
                                       {
                                           itemstack5 = slot2.getStack();
                                           inventoryplayer.setInventorySlotContents(mouseButon, itemstack5.copy());
                    
                                           if ((slot2.inventory != inventoryplayer || !slot2.isItemValid(itemstack3)) && itemstack3 != null)
                                           {
                                               if (l1 > -1)
                                               {
                                                   inventoryplayer.addItemStackToInventory(itemstack3);
                                                   slot2.decrStackSize(itemstack5.stackSize);
                                                   slot2.putStack((ItemStack)null);
                                                   slot2.onPickupFromSlot(entityPlayer, itemstack5);
                                               }
                                           }
                                           else
                                           {
                                               slot2.decrStackSize(itemstack5.stackSize);
                                               slot2.putStack(itemstack3);
                                               slot2.onPickupFromSlot(entityPlayer, itemstack5);
                                           }
                                       }
                                       else if (!slot2.getHasStack() && itemstack3 != null && slot2.isItemValid(itemstack3))
                                       {
                                           inventoryplayer.setInventorySlotContents(mouseButon, (ItemStack)null);
                                           slot2.putStack(itemstack3);
                                       }
                                   }
                               }
                               else if (function == 3 && entityPlayer.capabilities.isCreativeMode && inventoryplayer.getItemStack() == null && indexSlot >= 0)
                               {
                                   slot2 = (Slot)this.inventorySlots.get(indexSlot);
                    
                                   if (slot2 != null && slot2.getHasStack())
                                   {
                                       itemstack3 = slot2.getStack().copy();
                                       itemstack3.stackSize = itemstack3.getMaxStackSize();
                                       inventoryplayer.setItemStack(itemstack3);
                                   }
                               }
                               else if (function == 4 && inventoryplayer.getItemStack() == null && indexSlot >= 0)
                               {
                                   slot2 = (Slot)this.inventorySlots.get(indexSlot);
                    
                                   if (slot2 != null && slot2.getHasStack() && slot2.canTakeStack(entityPlayer))
                                   {
                                       itemstack3 = slot2.decrStackSize(mouseButon == 0 ? 1 : slot2.getStack().stackSize);
                                       slot2.onPickupFromSlot(entityPlayer, itemstack3);
                                       entityPlayer.dropPlayerItemWithRandomChoice(itemstack3, true);
                                   }
                               }
                               else if (function == 6 && indexSlot >= 0)
                               {
                                   slot2 = (Slot)this.inventorySlots.get(indexSlot);
                                   itemstack3 = inventoryplayer.getItemStack();
                    
                                   if (itemstack3 != null && (slot2 == null || !slot2.getHasStack() || !slot2.canTakeStack(entityPlayer)))
                                   {
                                       i1 = mouseButon == 0 ? 0 : this.inventorySlots.size() - 1;
                                       l1 = mouseButon == 0 ? 1 : -1;
                    
                                       for (int i2 = 0; i2 < 2; ++i2)
                                       {
                                           for (int j2 = i1; j2 >= 0 && j2 < this.inventorySlots.size() && itemstack3.stackSize < itemstack3.getMaxStackSize(); j2 += l1)
                                           {
                                               Slot slot3 = (Slot)this.inventorySlots.get(j2);
                    
                                               if (slot3.getHasStack() && func_94527_a(slot3, itemstack3, true) && slot3.canTakeStack(entityPlayer) && this.func_94530_a(itemstack3, slot3) && (i2 != 0 || slot3.getStack().stackSize != slot3.getStack().getMaxStackSize()))
                                               {
                                                   int k1 = Math.min(itemstack3.getMaxStackSize() - itemstack3.stackSize, slot3.getStack().stackSize);
                                                   ItemStack itemstack2 = slot3.decrStackSize(k1);
                                                   itemstack3.stackSize += k1;
                    
                                                   if (itemstack2.stackSize <= 0)
                                                   {
                                                       slot3.putStack((ItemStack)null);
                                                   }
                    
                                                   slot3.onPickupFromSlot(entityPlayer, itemstack2);
                                               }
                                           }
                                       }
                                   }
                    
                                   this.detectAndSendChanges();
                               }
                           }
                    
                           return itemstack;
                       }
                    
                       @Override
                       protected boolean mergeItemStack(ItemStack itemStack, int start, int end, boolean backward)
                       {
                        /* Ici, on redéfinie la méthode en remplaçant simplement quelques condtions.
                        * Dans la méthode de la classe Container mère on trouve un test  if (itemStack.isStackable()).
                        * La méthode isStackable() est définie comme :
                        * public boolean isStackable()
                        {
                            return this.getMaxStackSize() > 1 && (!this.isItemStackDamageable() || !this.isItemDamaged());
                        }
                        * Il faut alors simplement faire sauter la partie getMaxStackSize() > 1\. Le test devient donc
                        * if (!itemStack.isItemStackDamageable() || !itemStack.isItemDamaged())
                        *
                        * Par la suite, il suffit simplement de remplacer les itemStack.getMaxStackSize() par 64
                        * car on ne peut stacker les objets que le coffre (Grace à la modification de la méthode transferStackInSlot
                        */
                    
                           boolean flag1 = false;
                           int k = start;
                    
                           if (backward)
                           {
                               k = end - 1;
                           }
                    
                           Slot slot;
                           ItemStack itemstack1;
                    
                           if (!itemStack.isItemStackDamageable() || !itemStack.isItemDamaged())
                           {
                               while (itemStack.stackSize > 0 && (!backward && k < end || backward && k >= start))
                               {
                                   slot = (Slot)this.inventorySlots.get(k);
                                   itemstack1 = slot.getStack();
                                   if (itemstack1 != null && itemstack1.getItem() == itemStack.getItem() && (!itemStack.getHasSubtypes() || itemStack.getItemDamage() == itemstack1.getItemDamage()) && ItemStack.areItemStackTagsEqual(itemStack, itemstack1))
                                   {
                                       int l = itemstack1.stackSize + itemStack.stackSize;
                    
                                       //if (l <= itemStack.getMaxStackSize())
                                   if (l <= 64)
                                       {
                                           itemStack.stackSize = 0;
                                           itemstack1.stackSize = l;
                                           slot.onSlotChanged();
                                           flag1 = true;
                                       }
                                       //else if (itemstack1.stackSize < itemStack.getMaxStackSize())
                                   else if (itemstack1.stackSize < 64)
                                       {
                                    //itemStack.stackSize -= itemStack.getMaxStackSize() - itemstack1.stackSize;
                                           //itemstack1.stackSize = itemStack.getMaxStackSize();
                                           itemStack.stackSize -= 64 - itemstack1.stackSize;
                                           itemstack1.stackSize = 64;
                                           slot.onSlotChanged();
                                           flag1 = true;
                                       }
                                   }
                    
                                   if (backward)
                                   {
                                       --k;
                                   }
                                   else
                                   {
                                       ++k;
                                   }
                               }
                           }
                    
                           if (itemStack.stackSize > 0)
                           {
                               if (backward)
                               {
                                   k = end - 1;
                               }
                               else
                               {
                                   k = start;
                               }
                    
                               while (!backward && k < end || backward && k >= start)
                               {
                                   slot = (Slot)this.inventorySlots.get(k);
                                   itemstack1 = slot.getStack();
                    
                                   if (itemstack1 == null)
                                   {
                                       slot.putStack(itemStack.copy());
                                       slot.onSlotChanged();
                                       itemStack.stackSize = 0;
                                       flag1 = true;
                                       break;
                                   }
                    
                                   if (backward)
                                   {
                                       --k;
                                   }
                                   else
                                   {
                                       ++k;
                                   }
                               }
                           }
                    
                           return flag1;
                       }
                    }
                    
                    

                    :::

                    1 Reply Last reply Reply Quote 0
                    • 1 / 1
                    • First post
                      Last post
                    Design by Woryk
                    Contact / Mentions Légales

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB