ActionTimer class

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

Файл: com/hypixel/hytale/server/npc/corecomponents/timer/ActionTimer.java

extends: ActionBase

Поля (9)

МодификаторыТипИмя
break
break
break
break
break
final Timer timer
double[] var3
double[] var3
double[] var4

Методы (14)

МодификаторыВозвратСигнатура
protected void executeContinueActionvoid executeContinueAction()
protected void executeModifyActionvoid executeModifyAction()
protected void executePauseActionvoid executePauseAction()
protected void executeRestartActionvoid executeRestartAction()
protected void executeStartActionvoid executeStartAction()
protected void executeStopActionvoid executeStopAction()
if if(this.minRestartValue > 0.0)
if if(this.maxValue > 0.0)
if if(this.minStartValue > 0.0)
if if(this.increaseValue > 0.0)
if if(this.rate > 0.0)
if if(this.modifyRepeating)
abstract super super(var1)
switch switch(this.action)

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.ActionBase;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimer;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerContinue;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerModify;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerPause;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerRestart;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerStart;
class="kw">import com.hypixel.hytale.server.npc.corecomponents.timer.builders.BuilderActionTimerStop;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider;
class="kw">import com.hypixel.hytale.server.npc.util.Timer;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ActionTimer class="kw">extends ActionBase {
   class="kw">protected class="kw">final Timer timer;
   class="kw">protected class="kw">final Timer.TimerAction action;
   class="kw">protected double minStartValue;
   class="kw">protected double maxStartValue;
   class="kw">protected double minRestartValue;
   class="kw">protected double maxValue;
   class="kw">protected double rate;
   class="kw">protected double increaseValue;
   class="kw">protected boolean modifyRepeating;
   class="kw">protected boolean repeating;

   class="kw">public ActionTimer(@Nonnull BuilderActionTimer var1, @Nonnull BuilderSupport var2) {
      super(var1);
      this.timer = var1.getTimer(var2);
      this.action = var1.getTimerAction();
   }

   class="kw">public ActionTimer(@Nonnull BuilderActionTimerStart var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
      double[] var3 = var1.getStartValueRange(var2);
      this.minStartValue = var3[0];
      this.maxStartValue = var3[1];
      double[] var4 = var1.getRestartValueRange(var2);
      this.minRestartValue = var4[0];
      this.maxValue = var4[1];
      this.rate = var1.getRate(var2);
      this.repeating = var1.isRepeating(var2);
   }

   class="kw">public ActionTimer(@Nonnull BuilderActionTimerModify var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
      this.increaseValue = var1.getIncreaseValue(var2);
      double[] var3 = var1.getRestartValueRange(var2);
      this.minRestartValue = var3[0];
      this.maxValue = var3[1];
      this.rate = var1.getRate(var2);
      this.minStartValue = var1.getSetValue(var2);
      this.repeating = var1.isRepeating(var2);
      this.modifyRepeating = var1.isModifyRepeating();
   }

   class="kw">public ActionTimer(BuilderActionTimerPause var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
   }

   class="kw">public ActionTimer(BuilderActionTimerStop var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
   }

   class="kw">public ActionTimer(BuilderActionTimerContinue var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
   }

   class="kw">public ActionTimer(BuilderActionTimerRestart var1, @Nonnull BuilderSupport var2) {
      this((BuilderActionTimer)var1, var2);
   }

   @Override
   class="kw">public boolean execute(
      @Nonnull Ref<EntityStore> var1, @Nonnull ExecutionSupport var2, @Nullable InfoProvider var3, double var4, @Nonnull Store<EntityStore> var6
   ) {
      super.execute(var1, var2, var3, var4, var6);
      class="kw">switch (this.action) {
         case START:
            this.executeStartAction();
            break;
         case PAUSE:
            this.executePauseAction();
            break;
         case STOP:
            this.executeStopAction();
            break;
         case MODIFY:
            this.executeModifyAction();
            break;
         case CONTINUE:
            this.executeContinueAction();
            break;
         case RESTART:
            this.executeRestartAction();
      }

      class="kw">return true;
   }

   class="kw">protected void executeRestartAction() {
      if (this.timer.isInitialised()) {
         this.timer.restart();
      }
   }

   class="kw">protected void executeModifyAction() {
      if (this.timer.isInitialised() && !this.timer.isStopped()) {
         if (this.minRestartValue > 0.0) {
            this.timer.setMinRestartValue(this.minRestartValue);
         }

         if (this.maxValue > 0.0) {
            this.timer.setMaxValue(this.maxValue);
         }

         if (this.minStartValue > 0.0) {
            this.timer.setValue(this.minStartValue);
         }

         if (this.increaseValue > 0.0) {
            this.timer.addValue(this.increaseValue);
         }

         if (this.rate > 0.0) {
            this.timer.setRate(this.rate);
         }

         if (this.modifyRepeating) {
            this.timer.setRepeating(this.repeating);
         }
      }
   }

   class="kw">protected void executeContinueAction() {
      if (this.timer.isInitialised()) {
         this.timer.resume();
      }
   }

   class="kw">protected void executePauseAction() {
      if (this.timer.isInitialised()) {
         this.timer.pause();
      }
   }

   class="kw">protected void executeStopAction() {
      if (this.timer.isInitialised()) {
         this.timer.stop();
      }
   }

   class="kw">protected void executeStartAction() {
      if (!this.timer.isInitialised()) {
         this.timer.start(this.minStartValue, this.maxStartValue, this.minRestartValue, this.maxValue, this.rate, this.repeating);
      }
   }
}