AlwaysTrueCondition class

Пакет: com.hypixel.hytale.server.npc.decisionmaker.core.conditions.base

Файл: com/hypixel/hytale/server/npc/decisionmaker/core/conditions/base/Condition.java

extends: Condition

Методы (3)

МодификаторыВозвратСигнатура
public double calculateUtilitypublic double calculateUtility(int var1, ArchetypeChunk<EntityStore> var2, Ref<EntityStore> var3, CommandBuffer<EntityStore> var4, EvaluationContext var5)
public int getSimplicitypublic int getSimplicity()
abstract super super(var1)

Исходный код

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

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.codec.Codec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
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.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.EvaluationContext;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.HasTargetCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.IsInStateCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.LineOfSightCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.NearbyCountCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.RandomiserCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.SelfHasEffectCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.SelfStatAbsoluteCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.SelfStatPercentageCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TargetDistanceCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TargetHasEffectCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TargetMovementStateCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TargetStatAbsoluteCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TargetStatPercentageCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TimeOfDayCondition;
class="kw">import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.TimeSinceLastUsedCondition;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import java.lang.ref.WeakReference;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">abstract class Condition class="kw">implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, Condition>> {
   class="kw">public class="kw">static class="kw">final double NO_TARGET = Double.MAX_VALUE;
   class="kw">public class="kw">static class="kw">final int ALWAYS_TRUE_SIMPLICITY = 0;
   class="kw">public class="kw">static class="kw">final int BOOLEAN_CHECK_SIMPLICITY = 10;
   class="kw">public class="kw">static class="kw">final int NORMALISED_CURVE_SIMPLICITY = 20;
   class="kw">public class="kw">static class="kw">final int SCALED_CURVE_SIMPLICITY = 30;
   class="kw">public class="kw">static class="kw">final int HIGH_COST_SIMPLICITY = 40;
   @Nonnull
   class="kw">public class="kw">static class="kw">final AssetCodecMapCodec<String, Condition> CODEC = new AssetCodecMapCodec<>(
      Codec.STRING, (var0, var1) -> var0.id = var1, var0 -> var0.id, (var0, var1) -> var0.data = var1, var0 -> var0.data
   );
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<Condition> BASE_CODEC = BuilderCodec.abstractBuilder(Condition.class)
      .afterDecode(var0 -> var0.reference = new WeakReference<>(var0))
      .build();
   @Nonnull
   class="kw">public class="kw">static class="kw">final Codec<String> CHILD_ASSET_CODEC = new ContainedAssetCodec<>(Condition.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<>(Condition::getAssetStore));
   class="kw">private class="kw">static AssetStore<String, Condition, IndexedLookupTableAssetMap<String, Condition>> ASSET_STORE;
   class="kw">protected AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected WeakReference<Condition> reference;

   @Nonnull
   class="kw">public class="kw">static AssetStore<String, Condition, IndexedLookupTableAssetMap<String, Condition>> getAssetStore() {
      if (ASSET_STORE == null) {
         ASSET_STORE = AssetRegistry.getAssetStore(Condition.class);
      }

      class="kw">return ASSET_STORE;
   }

   class="kw">public class="kw">static IndexedLookupTableAssetMap<String, Condition> getAssetMap() {
      class="kw">return (IndexedLookupTableAssetMap<String, Condition>)getAssetStore().getAssetMap();
   }

   class="kw">public Condition(String var1) {
      this.id = var1;
   }

   class="kw">protected Condition() {
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   class="kw">public void setupNPC(ExecutionSupport var1) {
   }

   class="kw">public void setupNPC(Holder<EntityStore> var1) {
   }

   class="kw">public WeakReference<Condition> getReference() {
      class="kw">return this.reference;
   }

   class="kw">public class="kw">abstract double calculateUtility(
      int var1, ArchetypeChunk<EntityStore> var2, Ref<EntityStore> var3, CommandBuffer<EntityStore> var4, EvaluationContext var5
   );

   class="kw">public class="kw">abstract int getSimplicity();

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "Condition{id='" + this.id + "'}";
   }

   @Nonnull
   class="kw">public class="kw">static Condition getAlwaysTrueFor(String var0) {
      class="kw">return new Condition.AlwaysTrueCondition(var0);
   }

   class="kw">static {
      CODEC.register("OwnStatPercent", SelfStatPercentageCondition.class, SelfStatPercentageCondition.CODEC);
      CODEC.register("TargetStatPercent", TargetStatPercentageCondition.class, TargetStatPercentageCondition.CODEC);
      CODEC.register("OwnStatAbsolute", SelfStatAbsoluteCondition.class, SelfStatAbsoluteCondition.CODEC);
      CODEC.register("TargetStatAbsolute", TargetStatAbsoluteCondition.class, TargetStatAbsoluteCondition.CODEC);
      CODEC.register("HasTarget", HasTargetCondition.class, HasTargetCondition.CODEC);
      CODEC.register("TimeOfDay", TimeOfDayCondition.class, TimeOfDayCondition.CODEC);
      CODEC.register("IsInState", IsInStateCondition.class, IsInStateCondition.CODEC);
      CODEC.register("NearbyCount", NearbyCountCondition.class, NearbyCountCondition.CODEC);
      CODEC.register("TimeSinceLastUsed", TimeSinceLastUsedCondition.class, TimeSinceLastUsedCondition.CODEC);
      CODEC.register("TargetDistance", TargetDistanceCondition.class, TargetDistanceCondition.CODEC);
      CODEC.register("Randomiser", RandomiserCondition.class, RandomiserCondition.CODEC);
      CODEC.register("LineOfSight", LineOfSightCondition.class, LineOfSightCondition.CODEC);
      CODEC.register("TargetMovementState", TargetMovementStateCondition.class, TargetMovementStateCondition.CODEC);
      CODEC.register("SelfHasEffect", SelfHasEffectCondition.class, SelfHasEffectCondition.CODEC);
      CODEC.register("TargetHasEffect", TargetHasEffectCondition.class, TargetHasEffectCondition.CODEC);
   }

   class="kw">private class="kw">static class AlwaysTrueCondition class="kw">extends Condition {
      class="kw">private AlwaysTrueCondition(String var1) {
         super(var1);
      }

      @Override
      class="kw">public double calculateUtility(int var1, ArchetypeChunk<EntityStore> var2, Ref<EntityStore> var3, CommandBuffer<EntityStore> var4, EvaluationContext var5) {
         class="kw">return 1.0;
      }

      @Override
      class="kw">public int getSimplicity() {
         class="kw">return 0;
      }
   }
}