InternalContainerUtilTag class

Пакет: com.hypixel.hytale.server.core.inventory.container

Файл: com/hypixel/hytale/server/core/inventory/container/InternalContainerUtilTag.java

Поля (28)

МодификаторыТипИмя
int var10
List var10
int var11
int var12
ItemStack var13
ItemStack var14
ItemStack var16
long var3
TestRemoveItemSlotResult var4
ItemStack var4
ItemStack var5
ItemStack var5
AssetExtraInfo.Data var5
int var6
int var6
AssetExtraInfo.Data var6
ItemStack var6
Item var6
ItemStack var7
int var7
var7
int var7
AssetExtraInfo.Data var7
int var7
Item var8
int var8
int var9
TagSlotTransaction var9

Методы (18)

МодификаторыВозвратСигнатура
abstract return new TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, var16, var16, null, var4, false, var5, var2, var3)
abstract return new TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, null, null, null, var4, false, var5, var2, var3)
abstract return new TagSlotTransactionreturn new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3)
abstract return new TagSlotTransactionreturn new TagSlotTransaction(true, ActionType.REMOVE, var1, var7, var13, var14, var4, false, var5, var2, var6)
abstract return new TagTransactionreturn new TagTransaction(true, ActionType.REMOVE, var1, var7, var3, var4, var5, var10)
static int countTagFromItemsint countTagFromItems(@Nonnull ItemContainer var0, int var1, boolean var2)
static int countTagFromSlotint countTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, boolean var3)
abstract for for(short var5 = 0; var5 < var0.getCapacity()
if if(var7 == null)
if if(var4 && var6 > 0)
if if(var3 || var4)
if if(var6 > 0)
if if(var4 && var6 < 0)
static TagTransaction internal_removeTagTagTransaction internal_removeTag(@Nonnull ItemContainer var0, int var1, int var2, boolean var3, boolean var4, boolean var5)
static TagSlotTransaction internal_removeTagFromSlotTagSlotTransaction internal_removeTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4, boolean var5)
static int testRemoveTagFromItemsint testRemoveTagFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3)
static int testRemoveTagFromSlotint testRemoveTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4)
static TestRemoveItemSlotResult testRemoveTagSlotFromItemsTestRemoveItemSlotResult testRemoveTagSlotFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.inventory.container;

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.ActionType;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.TagSlotTransaction;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.TagTransaction;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class InternalContainerUtilTag {
   class="kw">public InternalContainerUtilTag() {
   }

   class="kw">protected class="kw">static TagSlotTransaction internal_removeTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4, boolean var5) {
      ItemContainer.validateSlotIndex(var1, var0.getCapacity());
      ItemContainer.validateQuantity(var3);
      class="kw">return var0.writeAction(() -> {
         int var6 = var3;
         if (var5 && var0.cantRemoveFromSlot(var1)) {
            ItemStack var16 = var0.internal_getSlot(var1);
            class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var16, var16, null, var4, false, var5, var2, var3);
         }

         ItemStack var7 = var0.internal_getSlot(var1);
         if (var7 == null) {
            class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, null, null, null, var4, false, var5, var2, var3);
         }

         Item var8 = var7.getItem();
         int var9 = var7.getQuantity();
         if (var8.getData() != null && var8.getData().getExpandedTagIndexes().contains(var2)) {
            int var10 = var6;
            int var11 = Math.min(var9, var10);
            int var12 = var9 - var11;
            var6 -= var11;
            if (var4 && var6 > 0) {
               class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3);
            }

            ItemStack var13 = var7.withQuantity(var12);
            var0.internal_setSlot(var1, var13);
            ItemStack var14 = var7.withQuantity(var11);
            class="kw">return new TagSlotTransaction(true, ActionType.REMOVE, var1, var7, var13, var14, var4, false, var5, var2, var6);
         } else {
            class="kw">return new TagSlotTransaction(false, ActionType.REMOVE, var1, var7, var7, null, var4, false, var5, var2, var3);
         }
      });
   }

   class="kw">protected class="kw">static TagTransaction internal_removeTag(@Nonnull ItemContainer var0, int var1, int var2, boolean var3, boolean var4, boolean var5) {
      class="kw">return var0.writeAction(() -> {
         if (var3 || var4) {
            int var6 = testRemoveTagFromItems(var0, var1, var2, var5);
            if (var6 > 0) {
               class="kw">return new TagTransaction(false, ActionType.REMOVE, var1, var2, var3, var4, var5, Collections.emptyList());
            }

            if (var4 && var6 < 0) {
               class="kw">return new TagTransaction(false, ActionType.REMOVE, var1, var2, var3, var4, var5, Collections.emptyList());
            }
         }

         List var10 = new ObjectArrayList();
         int var7 = var2;

         for (short var8 = 0; var8 < var0.getCapacity() && var7 > 0; var8++) {
            TagSlotTransaction var9 = internal_removeTagFromSlot(var0, var8, var1, var7, var3, var5);
            var10.add(var9);
            var7 = var9.getRemainder();
         }

         class="kw">return new TagTransaction(true, ActionType.REMOVE, var1, var7, var3, var4, var5, var10);
      });
   }

   class="kw">protected class="kw">static int testRemoveTagFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) {
      for (short var4 = 0; var4 < var0.getCapacity() && var2 > 0; var4++) {
         if (!var3 || !var0.cantRemoveFromSlot(var4)) {
            ItemStack var5 = var0.internal_getSlot(var4);
            if (!ItemStack.isEmpty(var5)) {
               AssetExtraInfo.Data var6 = var5.getItem().getData();
               if (var6 != null && var6.getExpandedTagIndexes().contains(var1)) {
                  int var7 = var5.getQuantity();
                  var2 -= Math.min(var7, var2);
               }
            }
         }
      }

      class="kw">return var2;
   }

   class="kw">protected class="kw">static TestRemoveItemSlotResult testRemoveTagSlotFromItems(@Nonnull ItemContainer var0, int var1, int var2, boolean var3) {
      TestRemoveItemSlotResult var4 = new TestRemoveItemSlotResult(var2);

      for (short var5 = 0; var5 < var0.getCapacity() && var4.quantityRemaining > 0; var5++) {
         if (!var3 || !var0.cantRemoveFromSlot(var5)) {
            ItemStack var6 = var0.internal_getSlot(var5);
            if (!ItemStack.isEmpty(var6)) {
               AssetExtraInfo.Data var7 = var6.getItem().getData();
               if (var7 != null && var7.getExpandedTagIndexes().contains(var1)) {
                  int var8 = var6.getQuantity();
                  var4.quantityRemaining = var4.quantityRemaining - Math.min(var8, var4.quantityRemaining);
               }
            }
         }
      }

      class="kw">return var4;
   }

   class="kw">protected class="kw">static int testRemoveTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, int var3, boolean var4) {
      if (var4 && var0.cantRemoveFromSlot(var1)) {
         class="kw">return var3;
      }

      ItemStack var5 = var0.internal_getSlot(var1);
      if (ItemStack.isEmpty(var5)) {
         class="kw">return var3;
      }

      Item var6 = var5.getItem();
      if (!var6.getData().getExpandedTagIndexes().contains(var2)) {
         class="kw">return var3;
      }

      int var7 = var5.getQuantity();
      class="kw">return var3 - Math.min(var7, var3);
   }

   class="kw">protected class="kw">static int countTagFromSlot(@Nonnull ItemContainer var0, short var1, int var2, boolean var3) {
      if (var3 && var0.cantRemoveFromSlot(var1)) {
         class="kw">return 0;
      }

      ItemStack var4 = var0.internal_getSlot(var1);
      if (ItemStack.isEmpty(var4)) {
         class="kw">return 0;
      }

      AssetExtraInfo.Data var5 = var4.getItem().getData();
      class="kw">return var5 != null && var5.getExpandedTagIndexes().contains(var2) ? var4.getQuantity() : 0;
   }

   class="kw">protected class="kw">static int countTagFromItems(@Nonnull ItemContainer var0, int var1, boolean var2) {
      long var3 = 0L;

      for (short var5 = 0; var5 < var0.getCapacity(); var5++) {
         var3 += countTagFromSlot(var0, var5, var1, var2);
      }

      class="kw">return (int)Math.min(var3, 2147483647L);
   }
}