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