HorizontalMusicContainer class

Пакет: com.hypixel.hytale.server.core.asset.type.musiccontainer.config

Файл: com/hypixel/hytale/server/core/asset/type/musiccontainer/config/HorizontalMusicContainer.java

extends: MusicContainer

Поля (2)

МодификаторыТипИмя
com.hypixel.hytale.protocol.HorizontalMusicContainer var1
IndexedAssetMap var2

Методы (3)

МодификаторыВозвратСигнатура
for for(int var3 = 0; var3 < this.children.length; var3++)
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.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.MusicTransitionType;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class HorizontalMusicContainer class="kw">extends MusicContainer {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<HorizontalMusicContainer> CODEC = BuilderCodec.<MusicContainer>builder(
         HorizontalMusicContainer.class, HorizontalMusicContainer::new, MusicContainer.ABSTRACT_CODEC
      )
      .documentation("A music container designed for horizontal dynamic music, where transitions go from segment to segment.")
      .<MusicTransitionType>appendInherited(
         new KeyedCodec<>("DefaultPhaseTransitionType", new EnumCodec<>(MusicTransitionType.class)),
         (var0, var1) -> var0.defaultPhaseTransitionType = var1,
         var0 -> var0.defaultPhaseTransitionType,
         (var0, var1) -> var0.defaultPhaseTransitionType = var1.defaultPhaseTransitionType
      )
      .documentation("Default transition type for all phase transitions. Children can override via their own TransitionType.")
      .add()
      .<Float>appendInherited(
         new KeyedCodec<>("DefaultPhaseTransitionDuration", Codec.FLOAT),
         (var0, var1) -> var0.defaultPhaseTransitionDuration = var1,
         var0 -> var0.defaultPhaseTransitionDuration,
         (var0, var1) -> var0.defaultPhaseTransitionDuration = var1.defaultPhaseTransitionDuration
      )
      .documentation("Default transition duration for all phase transitions.")
      .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 MusicTransitionType defaultPhaseTransitionType = MusicTransitionType.Crossfade;
   class="kw">protected float defaultPhaseTransitionDuration;
   @Nullable
   class="kw">protected String[] children;

   class="kw">protected HorizontalMusicContainer() {
   }

   class="kw">public HorizontalMusicContainer(@Nonnull String var1) {
      super(var1);
   }

   @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.HorizontalMusicContainer var1 = new com.hypixel.hytale.protocol.HorizontalMusicContainer();
      this.fillBasePacketFields(var1);
      var1.defaultPhaseTransitionType = this.defaultPhaseTransitionType;
      var1.defaultPhaseTransitionDuration = this.defaultPhaseTransitionDuration;
      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;
   }
}