TimerAction enum
Пакет: com.hypixel.hytale.server.npc.util
Файл: com/hypixel/hytale/server/npc/util/Timer.java
implements: Supplier<String>
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final String |
asText |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
MODIFY MODIFY("Modify") |
|
public String |
asTextpublic String asText() |
|
public String |
getpublic String get() |
Исходный код
Показать/скрыть
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;
}
}
}