EntityFilterInventory class

Пакет: com.hypixel.hytale.server.npc.corecomponents.entity.filters

Файл: com/hypixel/hytale/server/npc/corecomponents/entity/filters/EntityFilterInventory.java

extends: EntityFilterBase

Поля (7)

МодификаторыТипИмя
final int COST
String[] var3
int[] var4
int[] var5
CombinedItemContainer var5
int var6
int var7

Методы (2)

МодификаторыВозвратСигнатура
if if(var6 < this.minCount || var6 > this.maxCount)
if if(!this.checkFreeSlots)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.entity.filters;

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.container.CombinedItemContainer;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.EntityFilterBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.entity.filters.builders.BuilderEntityFilterInventory;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.util.InventoryHelper;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class EntityFilterInventory class="kw">extends EntityFilterBase {
   class="kw">public class="kw">static class="kw">final int COST = 300;
   @Nullable
   class="kw">protected class="kw">final List<String> items;
   class="kw">protected class="kw">final int minCount;
   class="kw">protected class="kw">final int maxCount;
   class="kw">protected class="kw">final int minFreeSlots;
   class="kw">protected class="kw">final int maxFreeSlots;
   class="kw">protected class="kw">final boolean checkFreeSlots;

   class="kw">public EntityFilterInventory(@Nonnull BuilderEntityFilterInventory var1, @Nonnull BuilderSupport var2) {
      String[] var3 = var1.getItems(var2);
      this.items = var3 != null ? List.of(var3) : null;
      int[] var4 = var1.getCount(var2);
      this.minCount = var4[0];
      this.maxCount = var4[1];
      int[] var5 = var1.getFreeSlotsRange(var2);
      this.minFreeSlots = var5[0];
      this.maxFreeSlots = var5[1];
      this.checkFreeSlots = this.minFreeSlots != BuilderEntityFilterInventory.DEFAULT_FREE_SLOT_RANGE[0]
         || this.maxFreeSlots != BuilderEntityFilterInventory.DEFAULT_FREE_SLOT_RANGE[1];
   }

   @Override
   class="kw">public boolean matchesEntity(
      @Nonnull Ref<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull ExecutionSupport var3, @Nonnull Store<EntityStore> var4
   ) {
      CombinedItemContainer var5 = InventoryComponent.getCombined(var4, var2, InventoryComponent.HOTBAR_UTILITY_CONSUMABLE_STORAGE);
      int var6 = InventoryHelper.countItems(var5, this.items);
      if (var6 < this.minCount || var6 > this.maxCount) {
         class="kw">return false;
      }

      if (!this.checkFreeSlots) {
         class="kw">return true;
      }

      int var7 = InventoryHelper.countFreeSlots(var5);
      class="kw">return var7 >= this.minFreeSlots && var7 <= this.maxFreeSlots;
   }

   @Override
   class="kw">public int cost() {
      class="kw">return 300;
   }
}