Timer class

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

Файл: com/hypixel/hytale/server/npc/util/Timer.java

implements: Tickable

Поля (4)

МодификаторыТипИмя
private final String asText
private final String asText
private double value
double var2

Методы (28)

МодификаторыВозвратСигнатура
abstract ANY ANY("Any")
abstract MODIFY MODIFY("Modify")
TimerAction TimerAction(String nullxx)
TimerState TimerState(String nullxx)
public void addValuevoid addValue(double var1)
public String asTextpublic String asText()
public String asTextpublic String asText()
public String getpublic String get()
public String getpublic String get()
public double getValuedouble getValue()
if if(this.state == Timer.TimerState.RUNNING)
if if(this.repeating)
public boolean isInStateboolean isInState(Timer.TimerState var1)
public boolean isInitialisedboolean isInitialised()
public boolean isPausedboolean isPaused()
public boolean isRunningboolean isRunning()
public boolean isStoppedboolean isStopped()
public void pausevoid pause()
private double pickNextTimerValuedouble pickNextTimerValue()
public void restartvoid restart()
public void resumevoid resume()
public void setMaxValuevoid setMaxValue(double var1)
public void setMinRestartValuevoid setMinRestartValue(double var1)
public void setRatevoid setRate(double var1)
public void setRepeatingvoid setRepeating(boolean var1)
public void setValuevoid setValue(double var1)
public void startvoid start(double var1, double var3, double var5, double var7, double var9, boolean var11)
public void stopvoid stop()

Исходный код

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

class="kw">import com.hypixel.hytale.common.thread.ticking.Tickable;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import java.util.function.Supplier;

class="kw">public class Timer class="kw">implements Tickable {
   class="kw">private double value = 0.0;
   class="kw">private double minRestartValue;
   class="kw">private double maxValue;
   class="kw">private double rate;
   class="kw">private boolean repeating;
   class="kw">private Timer.TimerState state = Timer.TimerState.STOPPED;
   class="kw">private boolean initialised;

   class="kw">public Timer() {
   }

   class="kw">public void setRate(double var1) {
      this.rate = var1;
   }

   class="kw">public void setMinRestartValue(double var1) {
      this.minRestartValue = var1;
   }

   class="kw">public void setMaxValue(double var1) {
      this.maxValue = var1;
   }

   class="kw">public void setValue(double var1) {
      this.value = Math.min(var1, this.maxValue);
   }

   class="kw">public void setRepeating(boolean var1) {
      this.repeating = var1;
   }

   class="kw">public double getValue() {
      class="kw">return this.value;
   }

   class="kw">public boolean isInitialised() {
      class="kw">return this.initialised;
   }

   @Override
   class="kw">public void tick(float var1) {
      if (this.state == Timer.TimerState.RUNNING) {
         this.value = this.value - var1 * this.rate;
         if (!(this.value > 0.0)) {
            if (this.repeating) {
               double var2 = this.value;
               this.restart();
               this.value -= var2;
            } else {
               this.state = Timer.TimerState.STOPPED;
               this.value = 0.0;
            }
         }
      }
   }

   class="kw">public void start(double var1, double var3, double var5, double var7, double var9, boolean var11) {
      this.value = RandomExtra.randomRange(var1, var3);
      this.minRestartValue = var5;
      this.maxValue = var7;
      this.rate = var9;
      this.repeating = var11;
      this.state = Timer.TimerState.RUNNING;
      this.initialised = true;
   }

   class="kw">public void resume() {
      if (this.isPaused()) {
         this.state = Timer.TimerState.RUNNING;
      }
   }

   class="kw">public void pause() {
      if (this.isRunning()) {
         this.state = Timer.TimerState.PAUSED;
      }
   }

   class="kw">public void addValue(double var1) {
      this.value = Math.min(this.value + var1, this.maxValue);
   }

   class="kw">public void stop() {
      this.state = Timer.TimerState.STOPPED;
   }

   class="kw">public void restart() {
      this.value = this.pickNextTimerValue();
      this.state = Timer.TimerState.RUNNING;
   }

   class="kw">public boolean isInState(Timer.TimerState var1) {
      class="kw">return var1 == Timer.TimerState.ANY || this.state == var1;
   }

   class="kw">public boolean isPaused() {
      class="kw">return this.state == Timer.TimerState.PAUSED;
   }

   class="kw">public boolean isRunning() {
      class="kw">return this.state == Timer.TimerState.RUNNING;
   }

   class="kw">public boolean isStopped() {
      class="kw">return this.state == Timer.TimerState.STOPPED;
   }

   class="kw">private double pickNextTimerValue() {
      class="kw">return RandomExtra.randomRange(this.minRestartValue, this.maxValue);
   }

   class="kw">public enum TimerAction class="kw">implements Supplier<String> {
      START("Start"),
      STOP("Stop"),
      PAUSE("Pause"),
      CONTINUE("Continue"),
      RESTART("Restart"),
      MODIFY("Modify");

      class="kw">private class="kw">final String asText;

      TimerAction(String nullxx) {
         this.asText = nullxx;
      }

      class="kw">public String asText() {
         class="kw">return this.asText;
      }

      class="kw">public String get() {
         class="kw">return this.asText;
      }
   }

   class="kw">public enum TimerState class="kw">implements Supplier<String> {
      RUNNING("Running"),
      PAUSED("Paused"),
      STOPPED("Stopped"),
      ANY("Any");

      class="kw">private class="kw">final String asText;

      TimerState(String nullxx) {
         this.asText = nullxx;
      }

      class="kw">public String asText() {
         class="kw">return this.asText;
      }

      class="kw">public String get() {
         class="kw">return this.asText;
      }
   }
}