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