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