GatherObjectiveTask class
Пакет: com.hypixel.hytale.builtin.adventure.objectives.task
Файл: com/hypixel/hytale/builtin/adventure/objectives/task/GatherObjectiveTask.java
extends: CountObjectiveTask
implements: InventoryChangeAware
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var3 |
|
Set |
var4 |
|
BlockTagOrItemIdField |
var4 |
|
int |
var5 |
|
UUIDComponent |
var5 |
|
Set |
var6 |
|
int |
var7 |
|
PlayerRef |
var7 |
|
Ref |
var8 |
|
CombinedItemContainer |
var9 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
private |
int |
countObjectiveItemInInventoriesint countObjectiveItemInInventories(@Nonnull Set<UUID> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
|
|
for for(UUID var6 : var1) |
|
|
if if(var5 != null) |
|
|
if if(var7 != null) |
abstract |
|
super super(var1, var2, var3) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.objectives.task;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.Objective;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.BlockTagOrItemIdField;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.config.task.GatherObjectiveTaskAsset;
class="kw">import com.hypixel.hytale.builtin.adventure.objectives.transaction.TransactionRecord;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.InventoryChangeEvent;
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.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class GatherObjectiveTask class="kw">extends CountObjectiveTask class="kw">implements InventoryChangeAware {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<GatherObjectiveTask> CODEC = BuilderCodec.builder(
GatherObjectiveTask.class, GatherObjectiveTask::new, CountObjectiveTask.CODEC
)
.build();
class="kw">public GatherObjectiveTask(@Nonnull GatherObjectiveTaskAsset var1, int var2, int var3) {
super(var1, var2, var3);
}
class="kw">protected GatherObjectiveTask() {
}
@Nonnull
class="kw">public GatherObjectiveTaskAsset getAsset() {
class="kw">return (GatherObjectiveTaskAsset)super.getAsset();
}
@Nullable
@Override
class="kw">protected TransactionRecord[] setup0(@Nonnull Objective var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
Set var4 = var1.getPlayerUUIDs();
int var5 = this.countObjectiveItemInInventories(var4, var3);
if (this.areTaskConditionsFulfilled(null, null, var4)) {
this.count = MathUtil.clamp(var5, 0, this.getAsset().getCount());
if (this.checkCompletion()) {
this.consumeTaskConditions(null, null, var4);
this.complete = true;
class="kw">return null;
}
}
class="kw">return null;
}
@Override
class="kw">public void onInventoryChange(@Nonnull Objective var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3, @Nonnull InventoryChangeEvent var4) {
UUIDComponent var5 = var3.getComponent(var2, UUIDComponent.getComponentType());
if (var5 != null) {
Set var6 = var1.getActivePlayerUUIDs();
if (var6.contains(var5.getUuid())) {
int var7 = this.countObjectiveItemInInventories(var6, var3);
this.setTaskCompletion(var3, var2, var7, var1);
}
}
}
class="kw">private int countObjectiveItemInInventories(@Nonnull Set<UUID> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
int var3 = 0;
BlockTagOrItemIdField var4 = this.getAsset().getBlockTagOrItemIdField();
for (UUID var6 : var1) {
PlayerRef var7 = Universe.get().getPlayer(var6);
if (var7 != null) {
Ref var8 = var7.getReference();
if (var8 != null && var8.isValid()) {
CombinedItemContainer var9 = InventoryComponent.getCombined(var2, var8, InventoryComponent.HOTBAR_FIRST);
var3 += var9.countItemStacks(var1x -> var4.isBlockTypeIncluded(var1x.getItemId()));
}
}
}
class="kw">return var3;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "GatherObjectiveTask{} " + super.toString();
}
}