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