MotionTimer class
Пакет: com.hypixel.hytale.server.npc.corecomponents.timer
Файл: com/hypixel/hytale/server/npc/corecomponents/timer/MotionTimer.java
extends: MotionBase
Поля (2)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
T |
motion |
|
double[] |
var4 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(this.activeTime >= this.timeToLive) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.corecomponents.timer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.MotionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderMotionTimer;
class="kw">import com.hypixel.hytale.server.npc.entities.NPCEntity;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.instructions.Motion;
class="kw">import com.hypixel.hytale.server.npc.movement.Steering;
class="kw">import com.hypixel.hytale.server.npc.movement.controllers.MotionController;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class MotionTimer<T class="kw">extends Motion> class="kw">extends MotionBase {
class="kw">protected class="kw">final T motion;
class="kw">protected class="kw">final double atLeastSeconds;
class="kw">protected class="kw">final double atMostSeconds;
class="kw">protected double activeTime;
class="kw">protected double timeToLive;
class="kw">public MotionTimer(@Nonnull BuilderMotionTimer<T> var1, @Nonnull BuilderSupport var2, T var3) {
double[] var4 = var1.getTimerRange(var2);
this.atLeastSeconds = var4[0];
this.atMostSeconds = var4[1];
this.motion = var3;
}
@Override
class="kw">public void activate(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nonnull ComponentAccessor<EntityStore> var3) {
this.activeTime = 0.0;
this.timeToLive = RandomExtra.randomRange(this.atLeastSeconds, this.atMostSeconds);
this.motion.activate(var1, var2, var3);
}
@Override
class="kw">public void deactivate(@Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nonnull ComponentAccessor<EntityStore> var3) {
this.motion.deactivate(var1, var2, var3);
}
@Override
class="kw">public boolean computeSteering(
@Nonnull Ref<EntityStore> var1,
@Nonnull ExecutionSupport var2,
@Nullable InfoProvider var3,
double var4,
@Nonnull Steering var6,
@Nonnull ComponentAccessor<EntityStore> var7
) {
if (this.activeTime >= this.timeToLive) {
class="kw">return false;
} else {
this.activeTime += var4;
if (!this.motion.computeSteering(var1, var2, var3, var4, var6, var7)) {
this.activeTime = this.timeToLive;
class="kw">return false;
} else {
class="kw">return true;
}
}
}
@Override
class="kw">public void registerWithSupport(ExecutionSupport var1) {
this.motion.registerWithSupport(var1);
}
@Override
class="kw">public void motionControllerChanged(
@Nullable Ref<EntityStore> var1, @Nonnull NPCEntity var2, MotionController var3, @Nullable ComponentAccessor<EntityStore> var4
) {
this.motion.motionControllerChanged(var1, var2, var3, var4);
}
@Override
class="kw">public void loaded(ExecutionSupport var1) {
this.motion.loaded(var1);
}
@Override
class="kw">public void spawned(ExecutionSupport var1) {
this.motion.spawned(var1);
}
@Override
class="kw">public void unloaded(ExecutionSupport var1) {
this.motion.unloaded(var1);
}
@Override
class="kw">public void removed(ExecutionSupport var1) {
this.motion.removed(var1);
}
@Override
class="kw">public void teleported(ExecutionSupport var1, World var2, World var3) {
this.motion.teleported(var1, var2, var3);
}
}