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