BuilderMotionTimer class
Пакет: com.hypixel.hytale.server.npc.corecomponents.timer.builders
Файл: com/hypixel/hytale/server/npc/corecomponents/timer/builders/BuilderMotionTimer.java
extends: BuilderMotionBase<T>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double[] |
DEFAULT_TIMER_RANGE |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
double[] |
getTimerRangedouble[] getTimerRange(@Nonnull BuilderSupport var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.timer.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.BuilderObjectReferenceHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.holder.NumberArrayHolder;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.validators.DoubleSequenceValidator;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderMotionBase;
class="kw">import com.hypixel.hytale.server.npc.instructions.Motion;
class="kw">import com.hypixel.hytale.server.npc.util.expression.ExecutionContext;
class="kw">import com.hypixel.hytale.server.npc.util.expression.Scope;
class="kw">import com.hypixel.hytale.server.npc.validators.NPCLoadTimeValidationHelper;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class BuilderMotionTimer<T class="kw">extends Motion> class="kw">extends BuilderMotionBase<T> {
class="kw">public class="kw">static class="kw">final double[] DEFAULT_TIMER_RANGE = new double[]{1.0, 1.0};
class="kw">protected class="kw">final NumberArrayHolder timerRange = new NumberArrayHolder();
class="kw">protected BuilderObjectReferenceHelper<T> motion;
class="kw">public BuilderMotionTimer() {
}
@Nonnull
@Override
class="kw">public String getShortDescription() {
class="kw">return "Execute a Motion for a specific maximum time";
}
@Nonnull
@Override
class="kw">public String getLongDescription() {
class="kw">return "Execute a Motion for a specific maximum time. If the motion finishes earlier the Timer also finishes.";
}
@Nonnull
@Override
class="kw">public BuilderDescriptorState getBuilderDescriptorState() {
class="kw">return BuilderDescriptorState.Stable;
}
@Nonnull
class="kw">public BuilderMotionTimer<T> readConfig(@Nonnull JsonElement var1) {
this.getDoubleRange(
var1,
"Time",
this.timerRange,
DEFAULT_TIMER_RANGE,
DoubleSequenceValidator.betweenWeaklyMonotonic(0.0, Double.MAX_VALUE),
BuilderDescriptorState.Stable,
"Range of time from which the random timer length can be chosen",
null
);
this.requireObject(var1, "Motion", this.motion, BuilderDescriptorState.Stable, "Motion to execute", null, this.validationHelper);
class="kw">return this;
}
@Override
class="kw">public boolean validate(String var1, @Nonnull NPCLoadTimeValidationHelper var2, @Nonnull ExecutionContext var3, Scope var4, @Nonnull List<String> var5) {
class="kw">return super.validate(var1, var2, var3, var4, var5) & this.motion.validate(var1, var2, this.builderManager, var3, var4, var5);
}
class="kw">public double[] getTimerRange(@Nonnull BuilderSupport var1) {
class="kw">return this.timerRange.get(var1.getExecutionContext());
}
@Nullable
class="kw">public T getMotion(@Nonnull BuilderSupport var1) {
class="kw">return this.motion.build(var1);
}
}