AudioStateResolver class
Пакет: com.hypixel.hytale.server.core.asset.type.audiostate.config
Файл: com/hypixel/hytale/server/core/asset/type/audiostate/config/AudioStateResolver.java
Поля (19)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
int |
UNRESOLVED |
|
IndexedLookupTableAssetMap |
var1 |
|
IndexedLookupTableAssetMap |
var1 |
|
StateBinding[] |
var1 |
|
int |
var13 |
|
int |
var14 |
|
AudioState |
var15 |
|
String[] |
var17 |
|
HashSet |
var3 |
|
IndexedLookupTableAssetMap |
var3 |
|
HashSet |
var4 |
|
StateBindingConfig |
var5 |
|
int |
var6 |
|
AmbienceStateWriteConfig |
var6 |
|
StateDeltaConfig |
var7 |
|
AudioState |
var7 |
|
AudioState |
var7 |
|
String[] |
var8 |
|
int |
var9 |
Методы (38)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var2 = 0; var2 < var1.length; var2++) |
|
|
for for(StateBindingConfig var5 : var0) |
|
|
for for(StateDeltaConfig var21 : var5.deltas) |
|
|
for for(StateDeltaConfig var12 : var5.deltas) |
|
|
for for(StateDeltaConfig var9 : var5.deltas) |
|
|
for for(int var4 = 0; var4 < var0.length; var4++) |
|
|
for for(int var6 = 0; var6 < var5.deltas.length; var6++) |
|
|
for for(AmbienceStateWriteConfig var5 : var0) |
|
|
for for(int var5 = 0; var5 < var0.length; var5++) |
|
|
for for(int var2 = 0; var2 < var0.length; var2++) |
|
|
if if(var1 == null) |
|
|
if if(var0 != null && var0.length != 0) |
|
|
if if(var5 != null) |
|
|
if if(var14 == Integer.MIN_VALUE) |
|
|
if if(var5.deltas != null) |
|
|
if if(var21 != null) |
|
|
if if(var5.deltas != null) |
|
|
if if(var12 != null) |
|
|
if if(var5.deltas != null) |
|
|
if if(var9 != null) |
|
|
if if(var0 != null && var0.length != 0) |
|
|
if if(var5 == null) |
|
|
if if(var5.audioStateIndex == -1) |
|
|
if if(var5.deltas != null) |
|
|
if if(var7 == null) |
|
|
if if(var7.valueIndex == -1) |
|
|
if if(var0 != null && var0.length != 0) |
|
|
if if(var5 != null) |
|
|
if if(var6 == Integer.MIN_VALUE) |
|
|
if if(var0 != null && var0.length != 0) |
|
|
if if(var6 == null) |
|
|
if if(var7 == null) |
|
|
if if(var0 != null && var0.length != 0) |
static |
void |
resolveBindingsvoid resolveBindings(@Nullable StateBindingConfig[] var0) |
static |
void |
resolveSetStatesvoid resolveSetStates(@Nullable AmbienceStateWriteConfig[] var0) |
static |
int |
resolveValueIndexint resolveValueIndex(@Nullable String var0, @Nullable String[] var1) |
static |
void |
validateBindingsvoid validateBindings(@Nullable StateBindingConfig[] var0, @Nonnull String var1, @Nonnull ValidationResults var2) |
static |
void |
validateSetStatesvoid validateSetStates(@Nullable AmbienceStateWriteConfig[] var0, @Nonnull String var1, @Nonnull ValidationResults var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.audiostate.config;
class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.protocol.AudioStateAuthority;
class="kw">import com.hypixel.hytale.protocol.StateBinding;
class="kw">import java.util.HashSet;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">final class AudioStateResolver {
class="kw">public class="kw">static class="kw">final int UNRESOLVED = -1;
class="kw">public class="kw">static class="kw">final int NAME_NOT_FOUND = -2;
class="kw">private AudioStateResolver() {
}
class="kw">public class="kw">static int resolveValueIndex(@Nullable String var0, @Nullable String[] var1) {
if (var0 != null && !"*".equals(var0)) {
if (var1 == null) {
class="kw">return -2;
}
for (int var2 = 0; var2 < var1.length; var2++) {
if (var0.equals(var1[var2])) {
class="kw">return var2;
}
}
class="kw">return -2;
} else {
class="kw">return -1;
}
}
class="kw">public class="kw">static void resolveBindings(@Nullable StateBindingConfig[] var0) {
if (var0 != null && var0.length != 0) {
IndexedLookupTableAssetMap var1 = AudioState.getAssetMap();
for (StateBindingConfig var5 : var0) {
if (var5 != null) {
if (var5.audioStateId != null && !var5.audioStateId.isBlank()) {
int var14 = var1.getIndex(var5.audioStateId);
if (var14 == Integer.MIN_VALUE) {
var5.audioStateIndex = -1;
if (var5.deltas != null) {
for (StateDeltaConfig var21 : var5.deltas) {
if (var21 != null) {
var21.valueIndex = -1;
}
}
}
} else {
var5.audioStateIndex = var14;
AudioState var15 = var1.getAsset(var5.audioStateId);
String[] var17 = var15 != null ? var15.getValues() : null;
if (var5.deltas != null) {
for (StateDeltaConfig var12 : var5.deltas) {
if (var12 != null) {
int var13 = resolveValueIndex(var12.valueName, var17);
var12.valueIndex = var13 >= 0 ? var13 : -1;
}
}
}
}
} else {
var5.audioStateIndex = -1;
if (var5.deltas != null) {
for (StateDeltaConfig var9 : var5.deltas) {
if (var9 != null) {
var9.valueIndex = -1;
}
}
}
}
}
}
}
}
class="kw">public class="kw">static void validateBindings(@Nullable StateBindingConfig[] var0, @Nonnull String var1, @Nonnull ValidationResults var2) {
if (var0 != null && var0.length != 0) {
HashSet var3 = new HashSet<>();
for (int var4 = 0; var4 < var0.length; var4++) {
StateBindingConfig var5 = var0[var4];
if (var5 == null) {
var2.fail(var1 + " StateBindings[" + var4 + "] is null");
} else if (var5.audioStateId != null && !var5.audioStateId.isBlank()) {
if (var5.audioStateIndex == -1) {
var2.fail(var1 + " StateBindings[" + var4 + "] references unknown AudioState '" + var5.audioStateId + "'");
} else {
if (!var3.add(var5.audioStateIndex)) {
var2.fail(
var1
+ " has multiple StateBindings targeting AudioState '"
+ var5.audioStateId
+ "'. At most one binding per AudioState per subscriber"
);
}
if (var5.deltas != null) {
for (int var6 = 0; var6 < var5.deltas.length; var6++) {
StateDeltaConfig var7 = var5.deltas[var6];
if (var7 == null) {
var2.fail(var1 + " StateBindings[" + var4 + "].Deltas[" + var6 + "] is null");
} else {
if (!Float.isFinite(var7.volumeDb)) {
var2.fail(var1 + " StateBindings[" + var4 + "].Deltas[" + var6 + "] VolumeDb is not finite");
}
if (var7.valueIndex == -1) {
if ("*".equals(var7.valueName)) {
var2.fail(
var1
+ " StateBindings["
+ var4
+ "].Deltas["
+ var6
+ "] value name cannot be wildcard '*' (wildcards are for transitions only)"
);
} else {
var2.fail(
var1
+ " StateBindings["
+ var4
+ "].Deltas["
+ var6
+ "] references unknown state value '"
+ var7.valueName
+ "' on AudioState '"
+ var5.audioStateId
+ "'"
);
}
}
}
}
}
}
} else {
var2.fail(var1 + " StateBindings[" + var4 + "] AudioState id is missing");
}
}
}
}
class="kw">public class="kw">static void resolveSetStates(@Nullable AmbienceStateWriteConfig[] var0) {
if (var0 != null && var0.length != 0) {
IndexedLookupTableAssetMap var1 = AudioState.getAssetMap();
for (AmbienceStateWriteConfig var5 : var0) {
if (var5 != null) {
if (var5.audioStateId != null && !var5.audioStateId.isBlank()) {
int var6 = var1.getIndex(var5.audioStateId);
if (var6 == Integer.MIN_VALUE) {
var5.audioStateIndex = -1;
var5.valueIndex = -1;
} else {
var5.audioStateIndex = var6;
AudioState var7 = var1.getAsset(var5.audioStateId);
String[] var8 = var7 != null ? var7.getValues() : null;
int var9 = resolveValueIndex(var5.valueName, var8);
var5.valueIndex = var9 >= 0 ? var9 : -1;
}
} else {
var5.audioStateIndex = -1;
var5.valueIndex = -1;
}
}
}
}
}
class="kw">public class="kw">static void validateSetStates(@Nullable AmbienceStateWriteConfig[] var0, @Nonnull String var1, @Nonnull ValidationResults var2) {
if (var0 != null && var0.length != 0) {
IndexedLookupTableAssetMap var3 = AudioState.getAssetMap();
HashSet var4 = new HashSet<>();
for (int var5 = 0; var5 < var0.length; var5++) {
AmbienceStateWriteConfig var6 = var0[var5];
if (var6 == null) {
var2.fail(var1 + " SetStates[" + var5 + "] is null");
} else if (var6.audioStateId == null || var6.audioStateId.isBlank()) {
var2.fail(var1 + " SetStates[" + var5 + "] AudioState id is missing");
} else if (var6.audioStateIndex == -1) {
var2.fail(var1 + " SetStates[" + var5 + "] references unknown AudioState '" + var6.audioStateId + "'");
} else {
if (!var4.add(var6.audioStateIndex)) {
var2.fail(
var1 + " has multiple SetStates writes targeting AudioState '" + var6.audioStateId + "'. At most one write per AudioState per AmbienceFX"
);
}
AudioState var7 = var3.getAsset(var6.audioStateId);
if (var7 == null) {
var2.fail(var1 + " SetStates[" + var5 + "] target '" + var6.audioStateId + "' could not be resolved");
} else {
if (var7.getAuthority() != AudioStateAuthority.Client) {
var2.fail(
var1
+ " SetStates["
+ var5
+ "] targets AudioState '"
+ var6.audioStateId
+ "' which has Authority: "
+ var7.getAuthority()
+ ". SetStates may only target Authority: Client axes"
);
}
if (var6.valueName == null || var6.valueName.isBlank()) {
var2.fail(var1 + " SetStates[" + var5 + "] Value is missing");
} else if (var6.valueIndex == -1) {
if ("*".equals(var6.valueName)) {
var2.fail(var1 + " SetStates[" + var5 + "] value name cannot be wildcard '*'");
} else {
var2.fail(
var1 + " SetStates[" + var5 + "] references unknown state value '" + var6.valueName + "' on AudioState '" + var6.audioStateId + "'"
);
}
}
}
}
}
}
}
@Nullable
class="kw">public class="kw">static StateBinding[] toPacketArray(@Nullable StateBindingConfig[] var0) {
if (var0 != null && var0.length != 0) {
StateBinding[] var1 = new StateBinding[var0.length];
for (int var2 = 0; var2 < var0.length; var2++) {
var1[var2] = var0[var2] != null ? var0[var2].toPacket() : null;
}
class="kw">return var1;
} else {
class="kw">return null;
}
}
}