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
+ "}";
}
}