RandomiserCondition class

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

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

extends: Condition

Поля (1)

МодификаторыТипИмя
final BuilderCodec<RandomiserCondition> CODEC

Исходный код

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

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.validation.Validators;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
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.base.Condition;
class="kw">import java.util.concurrent.ThreadLocalRandom;

class="kw">public class RandomiserCondition class="kw">extends Condition {
   class="kw">public class="kw">static class="kw">final BuilderCodec<RandomiserCondition> CODEC = BuilderCodec.builder(RandomiserCondition.class, RandomiserCondition::new, BASE_CODEC)
      .documentation("A condition that jitters between two defined values to add a small amount of randomness to the class="kw">final utility value.")
      .<Double>appendInherited(
         new KeyedCodec<>("MinValue", Codec.DOUBLE), (var0, var1) -> var0.minValue = var1, var0 -> var0.minValue, (var0, var1) -> var0.minValue = var1.minValue
      )
      .documentation("The minimum bound of the jitter.")
      .addValidator(Validators.range(0.0, 1.0))
      .add()
      .<Double>appendInherited(
         new KeyedCodec<>("MaxValue", Codec.DOUBLE), (var0, var1) -> var0.maxValue = var1, var0 -> var0.maxValue, (var0, var1) -> var0.maxValue = var1.maxValue
      )
      .documentation("The maximum bound of the jitter.")
      .addValidator(Validators.range(0.0, 1.0))
      .add()
      .build();
   class="kw">protected double minValue;
   class="kw">protected double maxValue;

   class="kw">public RandomiserCondition() {
   }

   @Override
   class="kw">public double calculateUtility(int var1, ArchetypeChunk<EntityStore> var2, Ref<EntityStore> var3, CommandBuffer<EntityStore> var4, EvaluationContext var5) {
      class="kw">return ThreadLocalRandom.current().nextDouble(this.minValue, this.maxValue);
   }

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