BuilderActionTriggerSpawners class

Пакет: com.hypixel.hytale.server.npc.corecomponents.world.builders

Файл: com/hypixel/hytale/server/npc/corecomponents/world/builders/BuilderActionTriggerSpawners.java

extends: BuilderActionBase

Поля (2)

МодификаторыТипИмя
final AssetHolder spawner
String var2

Методы (6)

МодификаторыВозвратСигнатура
abstract return new ActionTriggerSpawnersreturn new ActionTriggerSpawners(this, var1)
public int getCountint getCount(@Nonnull BuilderSupport var1)
public int getMarkedTargetSlotint getMarkedTargetSlot(@Nonnull BuilderSupport var1)
public double getRangedouble getRange(@Nonnull BuilderSupport var1)
public String getSpawnerString getSpawner(@Nonnull BuilderSupport var1)
public boolean isRebindTargetboolean isRebindTarget(@Nonnull BuilderSupport var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
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.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.DoubleHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.IntHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.StringHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.AssetValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.IntSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.StringNullOrNotEmptyValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.asset.ManualSpawnMarkerExistsValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderActionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.world.ActionTriggerSpawners;
class="kw">import com.hypixel.hytale.server.npc.instructions.Action;
class="kw">import java.util.EnumSet;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BuilderActionTriggerSpawners class="kw">extends BuilderActionBase {
   class="kw">protected class="kw">final AssetHolder spawner = new AssetHolder();
   class="kw">protected class="kw">final DoubleHolder range = new DoubleHolder();
   class="kw">protected class="kw">final IntHolder count = new IntHolder();
   class="kw">protected class="kw">final StringHolder markedTargetSlot = new StringHolder();
   class="kw">protected class="kw">final BooleanHolder rebindTarget = new BooleanHolder();

   class="kw">public BuilderActionTriggerSpawners() {
   }

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "Trigger all, or up to a certain number of manual spawn markers in a radius around the NPC";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return this.getShortDescription();
   }

   @Nonnull
   class="kw">public Action build(@Nonnull BuilderSupport var1) {
      class="kw">return new ActionTriggerSpawners(this, var1);
   }

   @Nonnull
   class="kw">public BuilderActionTriggerSpawners readConfig(@Nonnull JsonElement var1) {
      this.getAsset(
         var1,
         "SpawnMarker",
         this.spawner,
         null,
         ManualSpawnMarkerExistsValidator.withConfig(EnumSet.of(AssetValidator.Config.NULLABLE)),
         BuilderDescriptorState.Stable,
         "The spawn marker type to trigger",
         null
      );
      this.requireDouble(
         var1, "Range", this.range, DoubleSingleValidator.greater0(), BuilderDescriptorState.Stable, "The range within which to trigger spawn markers", null
      );
      this.getInt(
         var1,
         "Count",
         this.count,
         0,
         IntSingleValidator.greaterEqual0(),
         BuilderDescriptorState.Stable,
         "The number of markers to randomly trigger (0 will trigger all matching validators)",
         null
      );
      this.getString(
         var1,
         "TargetSlot",
         this.markedTargetSlot,
         null,
         StringNullOrNotEmptyValidator.get(),
         BuilderDescriptorState.Stable,
         "A target slot to place the first spawned NPC in. If omitted, no slot will be used",
         null
      );
      this.getBoolean(
         var1,
         "Rebind",
         this.rebindTarget,
         false,
         BuilderDescriptorState.Stable,
         "Whether the target slot rebinds to the spawned entity, so it survives short reloads or role changes.",
         null
      );
      class="kw">return this;
   }

   @Nonnull
   @Override
   class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
      class="kw">return BuilderDescriptorState.Stable;
   }

   class="kw">public String getSpawner(@Nonnull BuilderSupport var1) {
      class="kw">return this.spawner.get(var1.getExecutionContext());
   }

   class="kw">public double getRange(@Nonnull BuilderSupport var1) {
      class="kw">return this.range.get(var1.getExecutionContext());
   }

   class="kw">public int getCount(@Nonnull BuilderSupport var1) {
      class="kw">return this.count.get(var1.getExecutionContext());
   }

   class="kw">public int getMarkedTargetSlot(@Nonnull BuilderSupport var1) {
      String var2 = this.markedTargetSlot.get(var1.getExecutionContext());
      class="kw">return var2 == null ? Integer.MIN_VALUE : var1.getTargetSlot(var2);
   }

   class="kw">public boolean isRebindTarget(@Nonnull BuilderSupport var1) {
      class="kw">return this.rebindTarget.get(var1.getExecutionContext());
   }
}