WorldEventAssetsPage class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.ui

Файл: com/hypixel/hytale/builtin/adventure/worldevents/ui/WorldEventAssetsPage.java

extends: WorldEventPanelPage

Поля (24)

МодификаторыТипИмя
final String KIND_ASSET
break
break
break
break
WorldEventAsset var3
WorldEventManager var4
int var4
var4
var4
var4
var4
var4
var4
var4
var4
var4
var4
String var4
ArrayList var5
ArrayList var5
int var6
var6
int var9

Методы (9)

МодификаторыВозвратСигнатура
private void buildSidevoid buildSide(@Nonnull UICommandBuilder var1, @Nonnull WorldEventManager var2)
for for(WorldEventAsset var8 : var5)
for for(WorldEvent var7 : var5)
if if(var6 >= 400)
if if(var6 == 0)
if if(var3 != null && var3 != WorldEventAsset.UNKNOWN)
if if(var4 != null && var3.action != null)
abstract super super(var1)
switch switch(var3.action)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.ui;

class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStartAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStopAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEvent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEventAsset;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Comparator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class WorldEventAssetsPage class="kw">extends WorldEventPanelPage {
   class="kw">private class="kw">static class="kw">final String KIND_ASSET = "asset";
   @Nullable
   class="kw">private String selectedAsset = null;

   class="kw">public WorldEventAssetsPage(@Nonnull PlayerRef var1) {
      super(var1);
   }

   @Nullable
   @Override
   class="kw">protected WorldEventPanelPage.Tab tab() {
      class="kw">return WorldEventPanelPage.Tab.ASSETS;
   }

   @Nonnull
   @Override
   class="kw">protected String titleKey() {
      class="kw">return "server.customUI.worldEventPanel.tab.assets";
   }

   @Nonnull
   @Override
   class="kw">protected String descriptionKey() {
      class="kw">return "server.customUI.worldEventPanel.tab.assets.desc";
   }

   @Override
   class="kw">protected void buildContent(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull Store<EntityStore> var3) {
      WorldEventManager var4 = var3.getResource(WorldEventManager.getResourceType());
      ArrayList var5 = new ArrayList<>(WorldEventAsset.ASSET_MAP.getAssetMap().values());
      var5.sort(Comparator.comparing(WorldEventAsset::getId));
      int var6 = 0;

      for (WorldEventAsset var8 : var5) {
         if (var8 != WorldEventAsset.UNKNOWN && this.matchesFilter(var8.getId())) {
            if (var6 >= 400) {
               break;
            }

            int var9 = var4.allOf(var8.getId()).size();
            var6 = this.appendRow(
               var1,
               var2,
               var6,
               new WorldEventPanelPage.Row("asset", var8.getId())
                  .label(var8.getId())
                  .sub(details(var8))
                  .status(var8.valid() ? (var9 > 0 ? "#4f9e63" : "#4a5a6a") : "#b04a4a")
                  .badge(Message.translation("server.customUI.worldEventPanel.assets.badge").param("count", var9))
                  .select(WorldEventPanelPage.Action.RowSelect)
                  .selected(var8.getId().equals(this.selectedAsset))
                  .primary(Message.translation("server.customUI.worldEventPanel.action.start"), WorldEventPanelPage.Action.RowPrimary)
                  .secondary(Message.translation("server.customUI.worldEventPanel.action.cancelAll"), WorldEventPanelPage.Action.RowSecondary)
            );
         }
      }

      if (var6 == 0) {
         this.appendText(var1, "#ListContainer", 0, Message.translation("server.customUI.worldEventPanel.assets.empty"));
      }

      this.buildSide(var1, var4);
   }

   class="kw">private void buildSide(@Nonnull UICommandBuilder var1, @Nonnull WorldEventManager var2) {
      WorldEventAsset var3 = this.selectedAsset != null ? WorldEventAsset.getAssetOrUnknown(this.selectedAsset) : null;
      var1.set("#SideContainer.Visible", var3 != null && var3 != WorldEventAsset.UNKNOWN);
      var1.set("#SideSpacer.Visible", var3 != null && var3 != WorldEventAsset.UNKNOWN);
      if (var3 != null && var3 != WorldEventAsset.UNKNOWN) {
         int var4 = 0;
         var4 = this.appendSection(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.section.asset"));
         var4 = this.appendProperty(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.id"), var3.getId());
         var4 = this.appendProperty(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.valid"), boolLabel(var3.valid()));
         var4 = this.appendProperty(
            var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.persistent"), boolLabel(var3.isPersistent())
         );
         var4 = this.appendCount(
            var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.iterations"), var3.iterationCount(), -1
         );
         var4 = this.appendCount(
            var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.maxInstances"), var3.instanceCountMax(), -1
         );
         var4 = this.appendProperty(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.rootStage"), var3.root());
         var4 = this.appendProperty(
            var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.field.requiredPlayers"), String.valueOf(var3.playerCountMin())
         );
         var4 = this.appendSection(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.section.instances"));
         ArrayList var5 = new ArrayList<>(var2.allOf(var3.getId()));
         var5.sort(Comparator.comparing(var0 -> var0.uuid));
         if (var5.isEmpty()) {
            this.appendText(var1, "#SideContainer", var4, Message.translation("server.customUI.worldEventPanel.assets.noInstances"));
         } else {
            for (WorldEvent var7 : var5) {
               var4 = this.appendProperty(
                  var1, "#SideContainer", var4, var7.uuid.toString(), this.stageLabel(var7, "server.customUI.worldEventPanel.assets.instance")
               );
            }
         }
      }
   }

   @Override
   class="kw">protected boolean handleAction(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull WorldEventPanelPage.PageData var3) {
      String var4 = var3.id;
      if (var4 != null && var3.action != null) {
         class="kw">switch (var3.action) {
            case RowSelect:
               this.selectedAsset = var4.equals(this.selectedAsset) ? null : var4;
               break;
            case RowPrimary:
               EventStartAction.startEvent(var2, new WorldEventRecord(null, var4, true));
               break;
            case RowSecondary:
               EventStopAction.stopEvent(var2, var4, (var0, var1x) -> var0.asset.equals(var1x));
               break;
            class="kw">default:
               class="kw">return false;
         }

         class="kw">return true;
      } else {
         class="kw">return false;
      }
   }

   @Nonnull
   class="kw">private class="kw">static Message details(@Nonnull WorldEventAsset var0) {
      class="kw">return Message.translation("server.customUI.worldEventPanel.assets.sub").param("root", var0.root()).param("players", var0.playerCountMin());
   }
}