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