RandomMusicContainer class
Пакет: com.hypixel.hytale.server.core.asset.type.musiccontainer.config
Файл: com/hypixel/hytale/server/core/asset/type/musiccontainer/config/RandomMusicContainer.java
extends: MusicContainer
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
|
com.hypixel.hytale.protocol.RandomMusicContainer |
var1 |
|
IndexedAssetMap |
var2 |
|
RandomMusicContainer |
var3 |
|
String[] |
var4 |
|
String |
var6 |
|
SingleTrackMusicContainer |
var7 |
Методы (5)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var5 = 0; var5 < var4.length; var5++) |
|
|
for for(int var3 = 0; var3 < this.children.length; var3++) |
|
|
if if(var4 != null && var4.length > 0) |
|
|
if if(this.children != null && this.children.length > 0) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.musiccontainer.config;
class="kw">import com.hypixel.hytale.assetstore.AssetReferences;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedAssetMap;
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.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.protocol.RandomMode;
class="kw">import com.hypixel.hytale.server.core.asset.type.ambiencefx.config.AmbienceFXMusic;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class RandomMusicContainer class="kw">extends MusicContainer {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<RandomMusicContainer> CODEC = BuilderCodec.<MusicContainer>builder(
RandomMusicContainer.class, RandomMusicContainer::new, MusicContainer.ABSTRACT_CODEC
)
.documentation("A randomized music container.")
.<RandomMode>appendInherited(
new KeyedCodec<>("Mode", new EnumCodec<>(RandomMode.class)),
(var0, var1) -> var0.mode = var1,
var0 -> var0.mode,
(var0, var1) -> var0.mode = var1.mode
)
.documentation("Shuffle = even distribution. Random = weighted per-pick selection.")
.add()
.<Integer>appendInherited(
new KeyedCodec<>("AvoidRepeatCount", Codec.INTEGER),
(var0, var1) -> var0.avoidRepeatCount = var1,
var0 -> var0.avoidRepeatCount,
(var0, var1) -> var0.avoidRepeatCount = var1.avoidRepeatCount
)
.documentation("How many recently played children to avoid re-selecting.")
.addValidator(Validators.min(0))
.add()
.<String[]>appendInherited(
new KeyedCodec<>("Children", new ArrayCodec<>(MusicContainer.CHILD_ASSET_CODEC, String[]::new)),
(var0, var1) -> var0.children = var1,
var0 -> var0.children,
(var0, var1) -> var0.children = var1.children
)
.addValidator(Validators.nonEmptyArray())
.addValidatorLate(() -> MusicContainer.VALIDATOR_CACHE.getArrayValidator().late())
.add()
.build();
@Nonnull
class="kw">protected RandomMode mode = RandomMode.Shuffle;
class="kw">protected int avoidRepeatCount;
@Nullable
class="kw">protected String[] children;
class="kw">protected RandomMusicContainer() {
this.resumeMemoryDuration = 600.0F;
}
class="kw">public RandomMusicContainer(@Nonnull String var1) {
super(var1);
this.resumeMemoryDuration = 600.0F;
}
@Nonnull
class="kw">public class="kw">static RandomMusicContainer fromLegacy(
@Nonnull String var0, @Nonnull AmbienceFXMusic var1, @Nonnull Map<MusicContainer, List<AssetReferences<?, ?>>> var2
) {
RandomMusicContainer var3 = new RandomMusicContainer();
var3.volume = var1.getVolume();
var3.loopCount = 0;
var3.mode = RandomMode.Shuffle;
var3.avoidRepeatCount = 1;
var3.resumeMemoryDuration = 600.0F;
String[] var4 = var1.getTracks();
if (var4 != null && var4.length > 0) {
var3.children = new String[var4.length];
for (int var5 = 0; var5 < var4.length; var5++) {
String var6 = var0 + "_" + var5;
SingleTrackMusicContainer var7 = new SingleTrackMusicContainer();
var7.id = var6;
var7.track = var4[var5];
var7.volume = 1.0F;
var7.loopCount = 1;
var7.weight = 1.0F;
var3.children[var5] = var6;
var2.put(var7, Collections.emptyList());
}
}
class="kw">return var3;
}
@Nonnull
@Override
class="kw">public String[] getChildIds() {
class="kw">return this.children != null ? this.children : new String[0];
}
@Nonnull
class="kw">public com.hypixel.hytale.protocol.MusicContainer toPacket() {
com.hypixel.hytale.protocol.RandomMusicContainer var1 = new com.hypixel.hytale.protocol.RandomMusicContainer();
this.fillBasePacketFields(var1);
var1.mode = this.mode;
var1.avoidRepeatCount = this.avoidRepeatCount;
if (this.children != null && this.children.length > 0) {
IndexedAssetMap var2 = MusicContainer.getAssetMap();
var1.children = new int[this.children.length];
for (int var3 = 0; var3 < this.children.length; var3++) {
var1.children[var3] = var2.getIndex(this.children[var3]);
}
}
class="kw">return var1;
}
}