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