Nothing class

Пакет: com.hypixel.hytale.builtin.npccombatactionevaluator.evaluator.combatactions

Файл: com/hypixel/hytale/builtin/npccombatactionevaluator/evaluator/combatactions/CombatActionOption.java

extends: CombatActionOption

Поля (1)

МодификаторыТипИмя
private final String id

Методы (3)

МодификаторыВозвратСигнатура
public void executepublic void execute(int var1, ArchetypeChunk<EntityStore> var2, CommandBuffer<EntityStore> var3, ExecutionSupport var4, CombatActionEvaluator var5, ValueStore var6)
public String getIdpublic String getId()
public boolean isBasicAttackAllowedpublic boolean 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() {
      }
   }
}