BuilderEncounterManager class

Пакет: com.hypixel.hytale.builtin.encountermanager

Файл: com/hypixel/hytale/builtin/encountermanager/BuilderEncounterManager.java

extends: SupportConfigBuilder<EncounterManager>

implements: EncounterBuilder, OfflineValidatable

Поля (2)

МодификаторыТипИмя
final BooleanHolder cleanupOnRemove
boolean var6

Методы (1)

МодификаторыВозвратСигнатура
public boolean isCleanupOnRemoveboolean isCleanupOnRemove(@Nonnull BuilderSupport var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.encountermanager;

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderObjectListHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderValidationHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.FeatureEvaluatorHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.InstructionContextHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.InstructionType;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.OfflineValidatable;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.SupportConfigBuilder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.BooleanHolder;
class="kw">import com.hypixel.hytale.server.npc.instructions.Instruction;
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">import javax.annotation.Nullable;

class="kw">public class BuilderEncounterManager class="kw">extends SupportConfigBuilder<EncounterManager> class="kw">implements EncounterBuilder, OfflineValidatable {
   class="kw">protected class="kw">final BooleanHolder cleanupOnRemove = new BooleanHolder();
   class="kw">protected class="kw">final BuilderObjectListHelper<Instruction> instructionList = new BuilderObjectListHelper<>(Instruction.class, this);

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

   @Override
   class="kw">public boolean isSpawnable() {
      class="kw">return true;
   }

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "An encounter manager";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return "An entity which uses instruction lists to drive an encounter.";
   }

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

   @Nullable
   class="kw">public EncounterManager build(@Nonnull BuilderSupport var1) {
      throw new UnsupportedOperationException("Use BuilderEncounterManager.createAndAttach(holder, builderSupport) - EncounterManager requires entity context");
   }

   @Nonnull
   @Override
   class="kw">public EncounterManager createAndAttach(@Nonnull Holder<EntityStore> var1, @Nonnull BuilderSupport var2) {
      class="kw">return EncounterManager.createAndAttach(var1, this, var2);
   }

   @Nonnull
   class="kw">public BuilderEncounterManager readConfig(@Nonnull JsonElement var1) {
      super.readConfig(var1);
      this.setNotComponent();
      this.getBoolean(
         var1,
         "CleanupOnRemove",
         this.cleanupOnRemove,
         false,
         BuilderDescriptorState.Stable,
         "Remove everything this encounter spawned when the encounter is removed",
         "When true, removing this encounter also removes every entity sharing its spawn lineage, which is everything it spawned and everything those entities spawned in turn. Does not apply when the encounter unloads."
      );
      this.getArray(
         var1,
         "Instructions",
         this.instructionList,
         null,
         BuilderDescriptorState.Stable,
         "List of instructions the encounter runs",
         null,
         new BuilderValidationHelper(
            this.fileName,
            null,
            this.internalReferenceResolver,
            this.stateHelper,
            new InstructionContextHelper(InstructionType.Encounter),
            this.extraInfo,
            this.evaluators,
            this.readErrors
         )
      );
      this.getObject(
         var1,
         "StateTransitions",
         this.stateTransitionController,
         BuilderDescriptorState.Stable,
         "State transition actions",
         "A set of state transitions and the actions that will be executed during them",
         new BuilderValidationHelper(
            this.fileName,
            new FeatureEvaluatorHelper().lock(),
            this.internalReferenceResolver,
            this.stateHelper,
            new InstructionContextHelper(InstructionType.EncounterStateTransitions),
            this.extraInfo,
            this.evaluators,
            this.readErrors
         )
      );
      class="kw">return this;
   }

   @Override
   class="kw">public boolean validate(String var1, @Nonnull NPCLoadTimeValidationHelper var2, @Nonnull ExecutionContext var3, Scope var4, @Nonnull List<String> var5) {
      var2.pushPrecedingScope();
      boolean var6 = this.instructionList.validate(var1, var2, this.builderManager, var3, var4, var5);
      var2.popPrecedingScope();
      class="kw">return super.validate(var1, var2, var3, var4, var5) & var6 & this.stateTransitionController.validate(var1, var2, this.builderManager, var3, var4, var5);
   }

   @Nonnull
   @Override
   class="kw">public Class<EncounterManager> category() {
      class="kw">return EncounterManager.class;
   }

   @Override
   class="kw">public class="kw">final boolean isEnabled(ExecutionContext var1) {
      class="kw">return true;
   }

   @Nullable
   class="kw">public List<Instruction> getInstructionList(@Nonnull BuilderSupport var1) {
      var1.setCurrentInstructionContext(InstructionType.Encounter);
      class="kw">return this.instructionList.build(var1);
   }

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