PrefabLoadingState class

Пакет: com.hypixel.hytale.builtin.buildertools.prefabeditor

Файл: com/hypixel/hytale/builtin/buildertools/prefabeditor/PrefabLoadingState.java

Поля (7)

МодификаторыТипИмя
private final String translationKey
Message var1
var1
var1
var1
Message var1
var1

Методы (31)

МодификаторыВозвратСигнатура
public record LoadingErrorrecord LoadingError(@Nonnull String translationKey, @Nullable String details)
public LoadingErrorpublic LoadingError(@Nonnull String var1)
Phase Phase(String nullxx)
abstract SHUTDOWN_COMPLETE SHUTDOWN_COMPLETE("server.commands.editprefab.loading.phase.shutdownComplete")
public void addErrorvoid addError(@Nonnull PrefabLoadingState.LoadingError var1)
public void addErrorvoid addError(@Nonnull String var1)
public void addErrorvoid addError(@Nonnull String var1, @Nullable String var2)
public long getElapsedTimeMillislong getElapsedTimeMillis()
public long getLastNotifyTimeNanoslong getLastNotifyTimeNanos()
public int getLoadedPrefabsint getLoadedPrefabs()
public int getPastedPrefabsint getPastedPrefabs()
public float getProgressPercentagefloat getProgressPercentage()
public int getTotalPrefabsint getTotalPrefabs()
public String getTranslationKeypublic String getTranslationKey()
public boolean hasErrorsboolean hasErrors()
if if(this.totalPrefabs == 0)
if if(this.currentPhase == PrefabLoadingState.Phase.LOADING_PREFABS && this.totalPrefabs > 0)
if if(this.currentPrefabPath != null)
if if(this.details != null)
public boolean isShutdownCompleteboolean isShutdownComplete()
public boolean isShuttingDownboolean isShuttingDown()
public void markCompletevoid markComplete()
public void onPrefabLoadedvoid onPrefabLoaded(@Nullable Path var1)
public void onPrefabPastedvoid onPrefabPasted(@Nullable Path var1)
public void setLastNotifyTimeNanosvoid setLastNotifyTimeNanos(long var1)
public void setPhasevoid setPhase(@Nonnull PrefabLoadingState.Phase var1)
public void setTotalPrefabsvoid setTotalPrefabs(int var1)
return switchreturn switch(this.currentPhase)
return switchreturn switch(this.currentPhase)
abstract this this(var1, null)
public Message toMessagepublic Message toMessage()

Исходный код

Показать/скрыть
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;
      }
   }
}