VoidEventConfig class
Пакет: com.hypixel.hytale.builtin.portals.components.voidevent.config
Файл: com/hypixel/hytale/builtin/portals/components/voidevent/config/VoidEventConfig.java
Методы (9)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
int |
getDurationSecondsint getDurationSeconds() |
public |
InvasionPortalConfig |
getInvasionPortalConfigInvasionPortalConfig getInvasionPortalConfig() |
public |
int |
getMusicContainerIndexint getMusicContainerIndex() |
public |
int |
getShouldStartAfterSecondsint getShouldStartAfterSeconds(int var1) |
public |
VoidEventStage[] |
getStagesVoidEventStage[] getStages() |
public |
List<VoidEventStage> |
getStagesSortedByStartTimeList<VoidEventStage> getStagesSortedByStartTime() |
|
|
if if(this.stages != null) |
|
|
if if(this.musicContainerId != null) |
private |
void |
processConfigvoid processConfig() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.portals.components.voidevent.config;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.server.core.asset.type.musiccontainer.config.MusicContainer;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class VoidEventConfig {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<VoidEventConfig> CODEC = BuilderCodec.builder(VoidEventConfig.class, VoidEventConfig::new)
.append(new KeyedCodec<>("DurationSeconds", Codec.INTEGER), (var0, var1) -> var0.durationSeconds = var1, var0 -> var0.durationSeconds)
.documentation(
"How long the void event lasts in seconds. The void event starts at the end of the instance. If your fragment is 10 minutes and this is 180 seconds, it will start 7 minutes in."
)
.add()
.<InvasionPortalConfig>append(
new KeyedCodec<>("InvasionPortals", InvasionPortalConfig.CODEC), (var0, var1) -> var0.portalConfig = var1, var0 -> var0.portalConfig
)
.documentation("Configuration regarding the enemy portals that spawn around the players during the event")
.add()
.<VoidEventStage[]>append(
new KeyedCodec<>("Stages", new ArrayCodec<>(VoidEventStage.CODEC, VoidEventStage[]::new)), (var0, var1) -> var0.stages = var1, var0 -> var0.stages
)
.documentation(
"Certain event characteristics happen over stages that can be defined here. Stages are spread in time. Only one stage is \"active\" at a time."
)
.add()
.<String>append(
new KeyedCodec<>("MusicContainer", MusicContainer.CHILD_ASSET_CODEC), (var0, var1) -> var0.musicContainerId = var1, var0 -> var0.musicContainerId
)
.documentation("The ID of a MusicContainer to use as forced music during the event")
.add()
.afterDecode(VoidEventConfig::processConfig)
.build();
class="kw">private int durationSeconds = 180;
class="kw">private InvasionPortalConfig portalConfig;
class="kw">private VoidEventStage[] stages;
class="kw">private List<VoidEventStage> stagesSortedByStartTime;
@Nullable
class="kw">private String musicContainerId;
class="kw">private class="kw">transient int musicContainerIndex;
class="kw">public VoidEventConfig() {
}
class="kw">public int getDurationSeconds() {
class="kw">return this.durationSeconds;
}
class="kw">public int getShouldStartAfterSeconds(int var1) {
class="kw">return Math.max(10, var1 - this.durationSeconds);
}
class="kw">public InvasionPortalConfig getInvasionPortalConfig() {
class="kw">return this.portalConfig;
}
class="kw">public VoidEventStage[] getStages() {
class="kw">return this.stages;
}
class="kw">public List<VoidEventStage> getStagesSortedByStartTime() {
class="kw">return this.stagesSortedByStartTime;
}
class="kw">public int getMusicContainerIndex() {
class="kw">return this.musicContainerIndex;
}
class="kw">private void processConfig() {
this.stagesSortedByStartTime = new ObjectArrayList();
if (this.stages != null) {
Collections.addAll(this.stagesSortedByStartTime, this.stages);
this.stagesSortedByStartTime.sort(Comparator.comparingInt(VoidEventStage::getSecondsInto));
if (this.musicContainerId != null) {
this.musicContainerIndex = MusicContainer.getAssetMap().getIndex(this.musicContainerId);
}
}
}
}