SupportConfigBuilder class

Пакет: com.hypixel.hytale.server.npc.asset.builder

Файл: com/hypixel/hytale/server/npc/asset/builder/SupportConfigBuilder.java

extends: DependencyTrackingBuilder<T>

Поля (3)

МодификаторыТипИмя
final EnumSet<RoleDebugFlags> parsedDebugFlags
String var2
String var2

Методы (9)

МодификаторыВозвратСигнатура
public int getAttitudeGroupint getAttitudeGroup(@Nonnull BuilderSupport var1)
public Int2ObjectMap<IntSet> getBusyStatesInt2ObjectMap<IntSet> getBusyStates()
public Attitude getDefaultNPCAttitudeAttitude getDefaultNPCAttitude(@Nonnull BuilderSupport var1)
public Attitude getDefaultPlayerAttitudeAttitude getDefaultPlayerAttitude(@Nonnull BuilderSupport var1)
public int getItemAttitudeGroupint getItemAttitudeGroup(@Nonnull BuilderSupport var1)
public String getStartStateString getStartState()
public int getStartStateIndexint getStartStateIndex()
public int getStartSubStateIndexint getStartSubStateIndex()
public boolean isDisableDamageFlockboolean isDisableDamageFlock()

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.core.asset.type.attitude.Attitude;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.AssetArrayHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.AssetHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.EnumHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.AssetValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.StringNotEmptyValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.TagSetExistsValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.asset.AttitudeGroupExistsValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.asset.ItemAttitudeGroupExistsValidator;
class="kw">import com.hypixel.hytale.server.npc.config.AttitudeGroup;
class="kw">import com.hypixel.hytale.server.npc.config.ItemAttitudeGroup;
class="kw">import com.hypixel.hytale.server.npc.role.RoleDebugFlags;
class="kw">import com.hypixel.hytale.server.npc.role.support.WorldSupport;
class="kw">import com.hypixel.hytale.server.npc.statetransition.StateTransitionController;
class="kw">import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.ints.IntSet;
class="kw">import java.util.EnumSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class SupportConfigBuilder<T> class="kw">extends DependencyTrackingBuilder<T> {
   class="kw">protected class="kw">final EnumSet<RoleDebugFlags> parsedDebugFlags = EnumSet.noneOf(RoleDebugFlags.class);
   class="kw">protected String debugFlags;
   class="kw">protected String startState;
   class="kw">protected String defaultSubState;
   class="kw">protected int startStateIndex;
   class="kw">protected int startSubStateIndex;
   class="kw">protected Int2ObjectMap<IntSet> busyStates;
   class="kw">protected class="kw">final BuilderObjectReferenceHelper<StateTransitionController> stateTransitionController = new BuilderObjectReferenceHelper<>(
      StateTransitionController.class, this
   );
   class="kw">protected class="kw">final EnumHolder<Attitude> defaultPlayerAttitude = new EnumHolder<>();
   class="kw">protected class="kw">final EnumHolder<Attitude> defaultNPCAttitude = new EnumHolder<>();
   class="kw">protected class="kw">final AssetHolder attitudeGroup = new AssetHolder();
   class="kw">protected class="kw">final AssetHolder itemAttitudeGroup = new AssetHolder();
   class="kw">protected boolean disableDamageFlock;
   class="kw">protected class="kw">final AssetArrayHolder disableDamageGroups = new AssetArrayHolder();

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

   @Nonnull
   class="kw">public SupportConfigBuilder<T> readConfig(@Nonnull JsonElement var1) {
      super.readConfig(var1);
      this.getString(var1, "Debug", var1x -> this.debugFlags = var1x, "", null, BuilderDescriptorState.WorkInProgress, "Debugging flags", null);
      this.getString(
         var1, "StartState", var1x -> this.startState = var1x, "start", StringNotEmptyValidator.get(), BuilderDescriptorState.Stable, "Initial state", null
      );
      this.getDefaultSubState(
         var1,
         "DefaultSubState",
         var1x -> this.defaultSubState = var1x,
         StringNotEmptyValidator.get(),
         BuilderDescriptorState.Stable,
         "The class="kw">default sub state to reference when transitioning to a main state without a specified sub state",
         null
      );
      this.getBoolean(
         var1,
         "DisableDamageFlock",
         var1x -> this.disableDamageFlock = var1x,
         true,
         BuilderDescriptorState.WorkInProgress,
         "If true disables combat damage from flock members",
         null
      );
      this.getAssetArray(
         var1,
         "DisableDamageGroups",
         this.disableDamageGroups,
         null,
         0,
         Integer.MAX_VALUE,
         TagSetExistsValidator.withConfig(AssetValidator.ListCanBeEmpty),
         BuilderDescriptorState.WorkInProgress,
         "Members in this list of group won't cause damage",
         null
      );
      this.getExistentStateSet(
         var1,
         "BusyStates",
         var1x -> this.busyStates = var1x,
         this.stateHelper,
         BuilderDescriptorState.Stable,
         "States during which this NPC is busy and can't be interacted with",
         null
      );
      this.getEnum(
         var1,
         "DefaultPlayerAttitude",
         this.defaultPlayerAttitude,
         Attitude.class,
         Attitude.HOSTILE,
         BuilderDescriptorState.Stable,
         "The class="kw">default attitude of this NPC towards players",
         null
      );
      this.getEnum(
         var1,
         "DefaultNPCAttitude",
         this.defaultNPCAttitude,
         Attitude.class,
         Attitude.NEUTRAL,
         BuilderDescriptorState.Stable,
         "The class="kw">default attitude of this NPC towards other NPCs",
         null
      );
      this.getAsset(
         var1,
         "AttitudeGroup",
         this.attitudeGroup,
         null,
         AttitudeGroupExistsValidator.withConfig(EnumSet.of(AssetValidator.Config.NULLABLE)),
         BuilderDescriptorState.Stable,
         "The attitude group towards other NPCs this NPC belongs to (often species related)",
         null
      );
      this.getAsset(
         var1,
         "ItemAttitudeGroup",
         this.itemAttitudeGroup,
         null,
         ItemAttitudeGroupExistsValidator.withConfig(EnumSet.of(AssetValidator.Config.NULLABLE)),
         BuilderDescriptorState.Stable,
         "This NPC's item attitudes",
         null
      );
      this.registerStateSetter(this.startState, this.defaultSubState, (var1x, var2) -> {
         this.startStateIndex = var1x;
         this.startSubStateIndex = var2;
      });
      if (this.debugFlags != null && !this.debugFlags.isEmpty()) {
         this.parsedDebugFlags.addAll(this.toDebugFlagSet("RoleDebugFlags", this.debugFlags));
      }

      class="kw">return this;
   }

   class="kw">public String getStartState() {
      class="kw">return this.startState;
   }

   class="kw">public int getStartStateIndex() {
      class="kw">return this.startStateIndex;
   }

   class="kw">public int getStartSubStateIndex() {
      class="kw">return this.startSubStateIndex;
   }

   @Nonnull
   class="kw">public EnumSet<RoleDebugFlags> getDebugFlags() {
      class="kw">return this.parsedDebugFlags;
   }

   class="kw">public boolean isDisableDamageFlock() {
      class="kw">return this.disableDamageFlock;
   }

   @Nullable
   class="kw">public int[] getDisableDamageGroups(@Nonnull BuilderSupport var1) {
      class="kw">return WorldSupport.createTagSetIndexArray(this.disableDamageGroups.get(var1.getExecutionContext()));
   }

   class="kw">public Int2ObjectMap<IntSet> getBusyStates() {
      class="kw">return this.busyStates;
   }

   class="kw">public Attitude getDefaultPlayerAttitude(@Nonnull BuilderSupport var1) {
      class="kw">return this.defaultPlayerAttitude.get(var1.getExecutionContext());
   }

   class="kw">public Attitude getDefaultNPCAttitude(@Nonnull BuilderSupport var1) {
      class="kw">return this.defaultNPCAttitude.get(var1.getExecutionContext());
   }

   class="kw">public int getAttitudeGroup(@Nonnull BuilderSupport var1) {
      String var2 = this.attitudeGroup.get(var1.getExecutionContext());
      class="kw">return AttitudeGroup.getAssetMap().getIndex(var2);
   }

   class="kw">public int getItemAttitudeGroup(@Nonnull BuilderSupport var1) {
      String var2 = this.itemAttitudeGroup.get(var1.getExecutionContext());
      class="kw">return ItemAttitudeGroup.getAssetMap().getIndex(var2);
   }

   @Nullable
   class="kw">public StateTransitionController getStateTransitionController(@Nonnull BuilderSupport var1) {
      var1.setCurrentInstructionContext(InstructionType.Default);
      class="kw">return this.stateTransitionController.build(var1);
   }
}