Phase enum
Пакет: com.hypixel.hytale.builtin.buildertools.prefabeditor
Файл: com/hypixel/hytale/builtin/buildertools/prefabeditor/PrefabLoadingState.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final String |
translationKey |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
SHUTDOWN_COMPLETE SHUTDOWN_COMPLETE("server.commands.editprefab.loading.phase.shutdownComplete") |
|
public String |
getTranslationKeypublic String getTranslationKey() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.prefabeditor;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.nio.file.Path;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class PrefabLoadingState {
@Nonnull
class="kw">private PrefabLoadingState.Phase currentPhase = PrefabLoadingState.Phase.INITIALIZING;
class="kw">private int totalPrefabs;
class="kw">private int loadedPrefabs;
class="kw">private int pastedPrefabs;
@Nullable
class="kw">private Path currentPrefabPath;
@Nonnull
class="kw">private class="kw">final List<PrefabLoadingState.LoadingError> errors = new ObjectArrayList();
class="kw">private long startTimeNanos = System.nanoTime();
class="kw">private long lastUpdateTimeNanos = this.startTimeNanos;
class="kw">private long lastNotifyTimeNanos;
class="kw">public PrefabLoadingState() {
}
class="kw">public void setTotalPrefabs(int var1) {
this.totalPrefabs = var1;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public void setPhase(@Nonnull PrefabLoadingState.Phase var1) {
this.currentPhase = var1;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public void onPrefabLoaded(@Nullable Path var1) {
this.loadedPrefabs++;
this.currentPrefabPath = var1;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public void onPrefabPasted(@Nullable Path var1) {
this.pastedPrefabs++;
this.currentPrefabPath = var1;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public void addError(@Nonnull PrefabLoadingState.LoadingError var1) {
this.errors.add(var1);
this.currentPhase = PrefabLoadingState.Phase.ERROR;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public void addError(@Nonnull String var1) {
this.addError(new PrefabLoadingState.LoadingError(var1));
}
class="kw">public void addError(@Nonnull String var1, @Nullable String var2) {
this.addError(new PrefabLoadingState.LoadingError(var1, var2));
}
@Nonnull
class="kw">public PrefabLoadingState.Phase getCurrentPhase() {
class="kw">return this.currentPhase;
}
class="kw">public int getTotalPrefabs() {
class="kw">return this.totalPrefabs;
}
class="kw">public int getLoadedPrefabs() {
class="kw">return this.loadedPrefabs;
}
class="kw">public int getPastedPrefabs() {
class="kw">return this.pastedPrefabs;
}
@Nullable
class="kw">public Path getCurrentPrefabPath() {
class="kw">return this.currentPrefabPath;
}
@Nonnull
class="kw">public List<PrefabLoadingState.LoadingError> getErrors() {
class="kw">return this.errors;
}
class="kw">public boolean hasErrors() {
class="kw">return !this.errors.isEmpty();
}
class="kw">public boolean isShuttingDown() {
class="kw">return this.currentPhase == PrefabLoadingState.Phase.CANCELLING
|| this.currentPhase == PrefabLoadingState.Phase.SHUTTING_DOWN_WORLD
|| this.currentPhase == PrefabLoadingState.Phase.DELETING_WORLD;
}
class="kw">public boolean isShutdownComplete() {
class="kw">return this.currentPhase == PrefabLoadingState.Phase.SHUTDOWN_COMPLETE;
}
class="kw">public float getProgressPercentage() {
if (this.totalPrefabs == 0) {
class="kw">return class="kw">switch (this.currentPhase) {
case INITIALIZING -> 0.0F;
case CREATING_WORLD -> 0.1F;
case LOADING_PREFABS -> 0.2F;
case PASTING_PREFABS -> 0.5F;
case FINALIZING -> 0.99F;
case COMPLETE -> 1.0F;
case ERROR -> 0.0F;
case CANCELLING -> 0.1F;
case SHUTTING_DOWN_WORLD -> 0.4F;
case DELETING_WORLD -> 0.8F;
case SHUTDOWN_COMPLETE -> 1.0F;
};
} else {
class="kw">return class="kw">switch (this.currentPhase) {
case INITIALIZING -> 0.0F;
case CREATING_WORLD -> 0.02F;
case LOADING_PREFABS -> 0.02F + 0.08F * this.loadedPrefabs / this.totalPrefabs;
case PASTING_PREFABS -> 0.1F + 0.89F * this.pastedPrefabs / this.totalPrefabs;
case FINALIZING -> 0.99F;
case COMPLETE -> 1.0F;
case ERROR -> 0.0F;
case CANCELLING -> 0.1F;
case SHUTTING_DOWN_WORLD -> 0.4F;
case DELETING_WORLD -> 0.8F;
case SHUTDOWN_COMPLETE -> 1.0F;
};
}
}
class="kw">public long getElapsedTimeMillis() {
class="kw">return (System.nanoTime() - this.startTimeNanos) / 1000000L;
}
class="kw">public long getLastNotifyTimeNanos() {
class="kw">return this.lastNotifyTimeNanos;
}
class="kw">public void setLastNotifyTimeNanos(long var1) {
this.lastNotifyTimeNanos = var1;
}
@Nonnull
class="kw">public Message getStatusMessage() {
if (this.hasErrors()) {
class="kw">return this.errors.getLast().toMessage();
}
Message var1 = Message.translation(this.currentPhase.getTranslationKey());
if (this.currentPhase == PrefabLoadingState.Phase.LOADING_PREFABS && this.totalPrefabs > 0) {
var1 = var1.param("current", this.loadedPrefabs).param("total", this.totalPrefabs);
} else if (this.currentPhase == PrefabLoadingState.Phase.PASTING_PREFABS && this.totalPrefabs > 0) {
var1 = var1.param("current", this.pastedPrefabs).param("total", this.totalPrefabs);
}
if (this.currentPrefabPath != null) {
var1 = var1.param("path", this.currentPrefabPath.getFileName().toString());
}
class="kw">return var1;
}
class="kw">public void markComplete() {
this.currentPhase = PrefabLoadingState.Phase.COMPLETE;
this.lastUpdateTimeNanos = System.nanoTime();
}
class="kw">public record LoadingError(@Nonnull String translationKey, @Nullable String details) {
class="kw">public LoadingError(@Nonnull String var1) {
this(var1, null);
}
class="kw">public LoadingError {
}
@Nonnull
class="kw">public Message toMessage() {
Message var1 = Message.translation(this.translationKey);
if (this.details != null) {
var1 = var1.param("details", this.details);
}
class="kw">return var1;
}
}
class="kw">public enum Phase {
INITIALIZING("server.commands.editprefab.loading.phase.initializing"),
CREATING_WORLD("server.commands.editprefab.loading.phase.creatingWorld"),
LOADING_PREFABS("server.commands.editprefab.loading.phase.loadingPrefabs"),
PASTING_PREFABS("server.commands.editprefab.loading.phase.pastingPrefabs"),
FINALIZING("server.commands.editprefab.loading.phase.finalizing"),
COMPLETE("server.commands.editprefab.loading.phase.complete"),
ERROR("server.commands.editprefab.loading.phase.error"),
CANCELLING("server.commands.editprefab.loading.phase.cancelling"),
SHUTTING_DOWN_WORLD("server.commands.editprefab.loading.phase.shuttingDownWorld"),
DELETING_WORLD("server.commands.editprefab.loading.phase.deletingWorld"),
SHUTDOWN_COMPLETE("server.commands.editprefab.loading.phase.shutdownComplete");
class="kw">private class="kw">final String translationKey;
Phase(String nullxx) {
this.translationKey = nullxx;
}
@Nonnull
class="kw">public String getTranslationKey() {
class="kw">return this.translationKey;
}
}
}