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