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;
}
}