CombatActionOption class
Пакет: com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.combatactions
Файл: com/hypixel/hytale/builtin/npccombatactionevaluator/evaluator/combatactions/CombatActionOption.java
extends: Option
implements: JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, CombatActionOption>>
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
ASSET_STORE |
|
public static final EnumCodec<CombatActionOption.Target> |
CODEC |
|
Self,
Hostile, |
Friendly |
|
private final String |
id |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
Nothingpublic Nothing(String var1) |
|
|
Target Target() |
public |
boolean |
cancelBasicAttackOnSelectboolean cancelBasicAttackOnSelect() |
|
public void |
executepublic void execute(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, ExecutionSupport var4, CombatActionEvaluator var5, ValueStore var6) |
abstract abstract |
void |
executevoid execute(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, ExecutionSupport var4, CombatActionEvaluator var5, ValueStore var6) |
public |
CombatActionOption.Target |
getActionTargetCombatActionOption.Target getActionTarget() |
static |
IndexedLookupTableAssetMap<String, CombatActionOption> |
getAssetMapIndexedLookupTableAssetMap<String, CombatActionOption> getAssetMap() |
public |
String |
getIdString getId() |
|
public String |
getIdpublic String getId() |
|
|
if if(ASSET_STORE == null) |
|
public boolean |
isBasicAttackAllowedpublic boolean isBasicAttackAllowed(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, CombatActionEvaluator var4) |
abstract abstract |
boolean |
isBasicAttackAllowedboolean isBasicAttackAllowed(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, CombatActionEvaluator var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.combatactions;
class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetKeyValidator;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.AssetStore;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetCodecMapCodec;
class="kw">import com.hypixel.hytale.assetstore.codec.ContainedAssetCodec;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.CombatActionEvaluator;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.ValidatorCache;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.Option;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.valuestore.ValueStore;
class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class CombatActionOption class="kw">extends Option class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, CombatActionOption>> {
@Nonnull
class="kw">public class="kw">static class="kw">final AssetCodecMapCodec<String, CombatActionOption> CODEC = new AssetCodecMapCodec<>(
Codec.STRING, (var0, var1) -> var0.id = var1, var0 -> var0.id, (var0, var1) -> var0.extraData = var1, var0 -> var0.extraData
);
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<CombatActionOption> BASE_CODEC = BuilderCodec.abstractBuilder(CombatActionOption.class, Option.ABSTRACT_CODEC)
.appendInherited(
new KeyedCodec<>("Target", CombatActionOption.Target.CODEC),
(var0, var1) -> var0.actionTarget = var1,
var0 -> var0.actionTarget,
(var0, var1) -> var0.actionTarget = var1.actionTarget
)
.addValidator(Validators.nonNull())
.documentation("The target type this action applies to.")
.add()
.<double[]>appendInherited(
new KeyedCodec<>("PostExecuteDistanceRange", Codec.DOUBLE_ARRAY),
(var0, var1) -> var0.postExecuteDistanceRange = var1,
var0 -> var0.postExecuteDistanceRange,
(var0, var1) -> var0.postExecuteDistanceRange = var1.postExecuteDistanceRange
)
.addValidator(Validators.doubleArraySize(2))
.addValidator(Validators.weaklyMonotonicSequentialDoubleArrayValidator())
.documentation("An optional range the NPC will try to maintain from the target after executing the combat action.")
.add()
.build();
@Nonnull
class="kw">public class="kw">static class="kw">final Codec<String> CHILD_ASSET_CODEC = new ContainedAssetCodec<>(CombatActionOption.class, CODEC);
@Nonnull
class="kw">public class="kw">static class="kw">final Codec<String[]> CHILD_ASSET_CODEC_ARRAY = new ArrayCodec<>(CHILD_ASSET_CODEC, String[]::new);
@Nonnull
class="kw">public class="kw">static class="kw">final ValidatorCache<String> VALIDATOR_CACHE = new ValidatorCache<>(new AssetKeyValidator<>(CombatActionOption::getAssetStore));
class="kw">private class="kw">static AssetStore<String, CombatActionOption, IndexedLookupTableAssetMap<String, CombatActionOption>> ASSET_STORE;
class="kw">protected AssetExtraInfo.Data extraData;
class="kw">protected String id;
class="kw">protected CombatActionOption.Target actionTarget;
class="kw">protected double[] postExecuteDistanceRange;
@Nonnull
class="kw">public class="kw">static AssetStore<String, CombatActionOption, IndexedLookupTableAssetMap<String, CombatActionOption>> getAssetStore() {
if (ASSET_STORE == null) {
ASSET_STORE = AssetRegistry.getAssetStore(CombatActionOption.class);
}
class="kw">return ASSET_STORE;
}
class="kw">public class="kw">static IndexedLookupTableAssetMap<String, CombatActionOption> getAssetMap() {
class="kw">return (IndexedLookupTableAssetMap<String, CombatActionOption>)getAssetStore().getAssetMap();
}
class="kw">protected CombatActionOption() {
}
class="kw">public String getId() {
class="kw">return this.id;
}
class="kw">public CombatActionOption.Target getActionTarget() {
class="kw">return this.actionTarget;
}
@Nullable
class="kw">public double[] getPostExecuteDistanceRange() {
class="kw">return this.postExecuteDistanceRange;
}
class="kw">public class="kw">abstract void execute(
int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, ExecutionSupport var4, CombatActionEvaluator var5, ValueStore var6
);
class="kw">public class="kw">abstract boolean isBasicAttackAllowed(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, CombatActionEvaluator var4);
class="kw">public boolean cancelBasicAttackOnSelect() {
class="kw">return true;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "CombatActionOption{extraData="
+ this.extraData
+ ", id='"
+ this.id
+ "', actionTarget="
+ this.actionTarget
+ ", postExecuteDistanceRange="
+ Arrays.toString(this.postExecuteDistanceRange)
+ "}"
+ super.toString();
}
@Nonnull
class="kw">public class="kw">static CombatActionOption getNothingFor(String var0) {
class="kw">return new CombatActionOption.Nothing(var0);
}
class="kw">static {
CODEC.register("State", StateCombatAction.class, StateCombatAction.CODEC);
CODEC.register("Ability", AbilityCombatAction.class, AbilityCombatAction.CODEC);
CODEC.register("SelectBasicAttackTarget", BasicAttackTargetCombatAction.class, BasicAttackTargetCombatAction.CODEC);
}
class="kw">private class="kw">static class Nothing class="kw">extends CombatActionOption {
class="kw">private class="kw">final String id;
class="kw">public Nothing(String var1) {
this.id = var1;
this.actionTarget = CombatActionOption.Target.Self;
}
@Override
class="kw">public String getId() {
class="kw">return this.id;
}
@Override
class="kw">public void execute(
int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, ExecutionSupport var4, CombatActionEvaluator var5, ValueStore var6
) {
}
@Override
class="kw">public boolean isBasicAttackAllowed(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, CombatActionEvaluator var4) {
class="kw">return true;
}
}
class="kw">public enum Target {
Self,
Hostile,
Friendly;
@Nonnull
class="kw">public class="kw">static class="kw">final EnumCodec<CombatActionOption.Target> CODEC = new EnumCodec<>(CombatActionOption.Target.class)
.documentKey(Self, "Action targets self.")
.documentKey(Hostile, "Action targets any hostile target.")
.documentKey(Friendly, "Action targets any friendly target.");
Target() {
}
}
}