BuilderHeadMotionObserve class

Пакет: com.hypixel.hytale.server.npc.corecomponents.world.builders

Файл: com/hypixel/hytale/server/npc/corecomponents/world/builders/BuilderHeadMotionObserve.java

extends: BuilderHeadMotionBase

Поля (2)

МодификаторыТипИмя
final double[] DEFAULT_PAUSE_TIME_RANGE
double[] var2

Методы (6)

МодификаторыВозвратСигнатура
abstract return new HeadMotionObservereturn new HeadMotionObserve(this, var1)
public float[] getAngleRangefloat[] getAngleRange(@Nonnull BuilderSupport var1)
public double[] getPauseTimeRangedouble[] getPauseTimeRange(@Nonnull BuilderSupport var1)
public double getRelativeTurnSpeeddouble getRelativeTurnSpeed(@Nonnull BuilderSupport var1)
public int getViewSegmentsint getViewSegments(@Nonnull BuilderSupport var1)
public boolean isPickRandomAngleboolean isPickRandomAngle(@Nonnull BuilderSupport var1)

Исходный код

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

class="kw">import com.google.gson.JsonElement;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.BooleanHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.DoubleHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.IntHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.NumberArrayHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleRangeValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSequenceValidator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.IntSingleValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderHeadMotionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.world.HeadMotionObserve;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BuilderHeadMotionObserve class="kw">extends BuilderHeadMotionBase {
   class="kw">protected class="kw">static class="kw">final double[] DEFAULT_PAUSE_TIME_RANGE = new double[]{2.0, 2.0};
   class="kw">protected class="kw">final NumberArrayHolder angleRange = new NumberArrayHolder();
   class="kw">protected class="kw">final NumberArrayHolder pauseTimeRange = new NumberArrayHolder();
   class="kw">protected class="kw">final BooleanHolder pickRandomAngle = new BooleanHolder();
   class="kw">protected class="kw">final IntHolder viewSegments = new IntHolder();
   class="kw">protected class="kw">final DoubleHolder relativeTurnSpeed = new DoubleHolder();

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

   @Nonnull
   class="kw">public HeadMotionObserve build(@Nonnull BuilderSupport var1) {
      class="kw">return new HeadMotionObserve(this, var1);
   }

   @Nonnull
   @Override
   class="kw">public String getShortDescription() {
      class="kw">return "Observe surroundings in various ways.";
   }

   @Nonnull
   @Override
   class="kw">public String getLongDescription() {
      class="kw">return "Observe surroundings in various ways. This includes looking in random directions within an angle, or sweeping the head left and right, etc. Angles are relative to body angle at any given time.";
   }

   @Nonnull
   @Override
   class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
      class="kw">return BuilderDescriptorState.Stable;
   }

   @Nonnull
   class="kw">public BuilderHeadMotionObserve readConfig(@Nonnull JsonElement var1) {
      this.requireDoubleRange(
         var1,
         "AngleRange",
         this.angleRange,
         DoubleSequenceValidator.betweenWeaklyMonotonic(-180.0, 180.0),
         BuilderDescriptorState.Stable,
         "The angle range to observe in degrees",
         "The angle range to observe in degrees, offset from facing forwards"
      );
      this.getDoubleRange(
         var1,
         "PauseTimeRange",
         this.pauseTimeRange,
         DEFAULT_PAUSE_TIME_RANGE,
         DoubleSequenceValidator.betweenWeaklyMonotonic(0.0, Double.MAX_VALUE),
         BuilderDescriptorState.Stable,
         "How long to class="kw">continue looking in a given direction",
         null
      );
      this.getBoolean(
         var1,
         "PickRandomAngle",
         this.pickRandomAngle,
         false,
         BuilderDescriptorState.Stable,
         "Whether to pick random angles within the range",
         "Whether to pick random angles within the range. If false, will instead sweep across the range, pausing at either end."
      );
      this.getInt(
         var1,
         "ViewSegments",
         this.viewSegments,
         1,
         IntSingleValidator.greater0(),
         BuilderDescriptorState.Stable,
         "The number of distinct segments to stop at when sweeping from left to right",
         null
      );
      this.getDouble(
         var1,
         "RelativeTurnSpeed",
         this.relativeTurnSpeed,
         1.0,
         DoubleRangeValidator.fromExclToIncl(0.0, 2.0),
         BuilderDescriptorState.Stable,
         "The relative turn speed modifier",
         null
      );
      class="kw">return this;
   }

   class="kw">public float[] getAngleRange(@Nonnull BuilderSupport var1) {
      double[] var2 = this.angleRange.get(var1.getExecutionContext());
      class="kw">return new float[]{(float)(var2[0] * (float) (Math.PI / 180.0)), (float)(var2[1] * (float) (Math.PI / 180.0))};
   }

   class="kw">public double[] getPauseTimeRange(@Nonnull BuilderSupport var1) {
      class="kw">return this.pauseTimeRange.get(var1.getExecutionContext());
   }

   class="kw">public boolean isPickRandomAngle(@Nonnull BuilderSupport var1) {
      class="kw">return this.pickRandomAngle.get(var1.getExecutionContext());
   }

   class="kw">public int getViewSegments(@Nonnull BuilderSupport var1) {
      class="kw">return this.viewSegments.get(var1.getExecutionContext());
   }

   class="kw">public double getRelativeTurnSpeed(@Nonnull BuilderSupport var1) {
      class="kw">return this.relativeTurnSpeed.get(var1.getExecutionContext());
   }
}