AmbienceFXAmbientBed class

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

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

implements: NetworkSerializable<com.hypixel.hytale.protocol.AmbienceFXAmbientBed>

Поля (2)

МодификаторыТипИмя
final BuilderCodec<AmbienceFXAmbientBed> CODEC
com.hypixel.hytale.protocol.AmbienceFXAmbientBed var1

Методы (5)

МодификаторыВозвратСигнатура
public float getDecibelsfloat getDecibels()
public String getTrackString getTrack()
public AmbienceTransitionSpeed getTransitionSpeedAmbienceTransitionSpeed getTransitionSpeed()
public float getVolumefloat getVolume()
protected void processConfigvoid processConfig()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.ambiencefx.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.EnumCodec;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIEditor;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.common.util.AudioUtil;
class="kw">import com.hypixel.hytale.protocol.AmbienceTransitionSpeed;
class="kw">import com.hypixel.hytale.server.core.asset.common.CommonAssetValidator;
class="kw">import com.hypixel.hytale.server.core.asset.common.SoundFileValidators;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiostate.config.AudioStateResolver;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiostate.config.StateBindingConfig;
class="kw">import com.hypixel.hytale.server.core.io.NetworkSerializable;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class AmbienceFXAmbientBed class="kw">implements NetworkSerializable<com.hypixel.hytale.protocol.AmbienceFXAmbientBed> {
   class="kw">public class="kw">static class="kw">final BuilderCodec<AmbienceFXAmbientBed> CODEC = BuilderCodec.builder(AmbienceFXAmbientBed.class, AmbienceFXAmbientBed::new)
      .appendInherited(new KeyedCodec<>("Track", Codec.STRING), (var0, var1) -> var0.track = var1, var0 -> var0.track, (var0, var1) -> var0.track = var1.track)
      .addValidator(Validators.nonNull())
      .addValidator(CommonAssetValidator.SOUNDS)
      .addValidator(SoundFileValidators.STEREO)
      .add()
      .<Float>appendInherited(
         new KeyedCodec<>("Volume", Codec.FLOAT), (var0, var1) -> var0.decibels = var1, var0 -> var0.decibels, (var0, var1) -> var0.decibels = var1.decibels
      )
      .metadata(new UIEditor(new UIEditor.FormattedNumber(null, " dB", null)))
      .addValidator(Validators.range(-100.0F, 10.0F))
      .add()
      .<AmbienceTransitionSpeed>appendInherited(
         new KeyedCodec<>("TransitionSpeed", new EnumCodec<>(AmbienceTransitionSpeed.class)),
         (var0, var1) -> var0.transitionSpeed = var1,
         var0 -> var0.transitionSpeed,
         (var0, var1) -> var0.transitionSpeed = var1.transitionSpeed
      )
      .documentation(
         "How quickly to transition to this ambient bed and fade out any ambient beds that are stopping. For fading out stopping ambient beds, faster transitions take priority. Fade-ins are already fast by class="kw">default."
      )
      .add()
      .<StateBindingConfig[]>append(
         new KeyedCodec<>("StateBindings", StateBindingConfig.CODEC_ARRAY), (var0, var1) -> var0.stateBindings = var1, var0 -> var0.stateBindings
      )
      .documentation("Subscribe this ambient bed to AudioState axes. Per-state volume deltas will apply as a result.")
      .add()
      .afterDecode(AmbienceFXAmbientBed::processConfig)
      .build();
   class="kw">protected String track;
   class="kw">protected float decibels;
   class="kw">protected class="kw">transient float volume = 1.0F;
   class="kw">protected AmbienceTransitionSpeed transitionSpeed = AmbienceTransitionSpeed.Default;
   @Nullable
   class="kw">protected StateBindingConfig[] stateBindings;

   class="kw">public AmbienceFXAmbientBed(String var1, float var2, AmbienceTransitionSpeed var3) {
      this.track = var1;
      this.decibels = var2;
      this.transitionSpeed = var3;
   }

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

   @Nonnull
   class="kw">public com.hypixel.hytale.protocol.AmbienceFXAmbientBed toPacket() {
      com.hypixel.hytale.protocol.AmbienceFXAmbientBed var1 = new com.hypixel.hytale.protocol.AmbienceFXAmbientBed();
      var1.track = this.track;
      var1.volume = this.volume;
      var1.transitionSpeed = this.transitionSpeed;
      var1.stateBindings = AudioStateResolver.toPacketArray(this.stateBindings);
      class="kw">return var1;
   }

   @Nullable
   class="kw">public StateBindingConfig[] getStateBindings() {
      class="kw">return this.stateBindings;
   }

   class="kw">public String getTrack() {
      class="kw">return this.track;
   }

   class="kw">public float getDecibels() {
      class="kw">return this.decibels;
   }

   class="kw">public float getVolume() {
      class="kw">return this.volume;
   }

   class="kw">public AmbienceTransitionSpeed getTransitionSpeed() {
      class="kw">return this.transitionSpeed;
   }

   class="kw">protected void processConfig() {
      this.volume = AudioUtil.decibelsToLinearGain(this.decibels);
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "AmbienceFXAmbientBed{track='"
         + this.track
         + "', decibels="
         + this.decibels
         + ", volume="
         + this.volume
         + ", transitionSpeed="
         + this.transitionSpeed
         + "}";
   }
}