BuilderActionInventory class
Пакет: com.hypixel.hytale.server.npc.corecomponents.items.builders
Файл: com/hypixel/hytale/server/npc/corecomponents/items/builders/BuilderActionInventory.java
extends: BuilderActionBase
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
final |
EnumHolder<ActionInventory.Operation> |
operation |
|
boolean |
var6 |
|
ActionInventory.Operation |
var7 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
return new |
ActionInventoryreturn new ActionInventory(this, var1) |
public |
int |
getCountint getCount(@Nonnull BuilderSupport var1) |
public |
String |
getItemString getItem(@Nonnull BuilderSupport var1) |
public |
ActionInventory.Operation |
getOperationActionInventory.Operation getOperation(@Nonnull BuilderSupport var1) |
public |
int |
getSlotint getSlot(@Nonnull BuilderSupport var1) |
public |
boolean |
getUseTargetboolean getUseTarget(@Nonnull BuilderSupport var1) |
|
|
switch switch(var7) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.items.builders;
class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Builder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Feature;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.InstructionType;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.AssetHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.BooleanHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.EnumHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.IntHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.AssetValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.IntSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.asset.ItemExistsValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderActionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.items.ActionInventory;
class="kw">import com.hypixel.hytale.server.npc.instructions.Action;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">public class BuilderActionInventory class="kw">extends BuilderActionBase {
class="kw">protected class="kw">final EnumHolder<ActionInventory.Operation> operation = new EnumHolder<>();
class="kw">protected class="kw">final AssetHolder item = new AssetHolder();
class="kw">protected class="kw">final IntHolder count = new IntHolder();
class="kw">protected class="kw">final BooleanHolder useTarget = new BooleanHolder();
class="kw">protected class="kw">final IntHolder slot = new IntHolder();
class="kw">public BuilderActionInventory() {
}
@Nonnull
class="kw">public Action build(@Nonnull BuilderSupport var1) {
class="kw">return new ActionInventory(this, var1);
}
@Nonnull
@Override
class="kw">public String getShortDescription() {
class="kw">return "Add or remove items from inventory.";
}
@Nonnull
@Override
class="kw">public String getLongDescription() {
class="kw">return "Add or remove a number of items from an inventory. Can also be used to equip them.";
}
@Nonnull
@Override
class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
class="kw">return BuilderDescriptorState.Stable;
}
@Nonnull
@Override
class="kw">public Builder<Action> readConfig(@Nonnull JsonElement var1) {
this.getEnum(
var1,
"Operation",
this.operation,
ActionInventory.Operation.class,
ActionInventory.Operation.Add,
BuilderDescriptorState.Stable,
"Operation to perform",
null
);
this.getInt(var1, "Count", this.count, 1, IntSingleValidator.greater0(), BuilderDescriptorState.Stable, "Number of items to add/remove", null);
this.getAsset(
var1,
"Item",
this.item,
"",
ItemExistsValidator.withConfig(AssetValidator.CanBeEmpty),
BuilderDescriptorState.Stable,
"Item type to add, remove, or equip",
null
);
this.getBoolean(var1, "UseTarget", this.useTarget, true, BuilderDescriptorState.Stable, "Use the sensor-provided target for the action", null);
this.getInt(
var1,
"Slot",
this.slot,
0,
null,
BuilderDescriptorState.Stable,
"The hotbar or off-hand slot to affect",
"The hotbar or off-hand to effect. Only valid for Hotbar/OffHand Set/Equip operations"
);
this.requireFeatureIf(this.useTarget, true, Feature.LiveEntity);
this.requireInstructionType(InstructionType.NPCOnlyInstructions);
class="kw">return this;
}
@Override
class="kw">public boolean validate(String var1, @Nonnull NPCLoadTimeValidationHelper var2, ExecutionContext var3, Scope var4, @Nonnull List<String> var5) {
boolean var6 = super.validate(var1, var2, var3, var4, var5);
ActionInventory.Operation var7 = this.operation.get(var3);
class="kw">switch (var7) {
case SetHotbar:
case EquipHotbar:
var6 &= var2.validateHotbarHasSlot(this.slot.get(var3), "ActionInventory", var5);
break;
case SetOffHand:
case EquipOffHand:
var6 &= var2.validateOffHandHasSlot(this.slot.get(var3), "ActionInventory", var5);
case Add:
case Remove:
case Equip:
case ClearHeldItem:
case RemoveHeldItem:
}
class="kw">return var6;
}
class="kw">public ActionInventory.Operation getOperation(@Nonnull BuilderSupport var1) {
class="kw">return this.operation.get(var1.getExecutionContext());
}
class="kw">public String getItem(@Nonnull BuilderSupport var1) {
class="kw">return this.item.get(var1.getExecutionContext());
}
class="kw">public int getCount(@Nonnull BuilderSupport var1) {
class="kw">return this.count.get(var1.getExecutionContext());
}
class="kw">public boolean getUseTarget(@Nonnull BuilderSupport var1) {
class="kw">return this.useTarget.get(var1.getExecutionContext());
}
class="kw">public int getSlot(@Nonnull BuilderSupport var1) {
class="kw">return this.slot.get(var1.getExecutionContext());
}
}