AudioStateComponent class

Пакет: com.hypixel.hytale.builtin.audio.components

Файл: com/hypixel/hytale/builtin/audio/components/AudioStateComponent.java

implements: Component<EntityStore>

Поля (8)

МодификаторыТипИмя
transient int[] currentValueIndices
int var1
AudioStateComponent var1
int var2
IndexedLookupTableAssetMap var3
AudioState var4
AudioState var5
String[] var5

Методы (14)

МодификаторыВозвратСигнатура
private void ensureArraysvoid ensureArrays()
for for(int var4 = var1; var4 < var2; var4++)
public StateTransition[] getActiveTransitionOverridesStateTransition[] getActiveTransitionOverrides()
static ComponentType<EntityStore, AudioStateComponent> getComponentTypeComponentType<EntityStore, AudioStateComponent> getComponentType()
public int[] getCurrentValueIndicesint[] getCurrentValueIndices()
public int[] getLastSentValueVersionsint[] getLastSentValueVersions()
public int[] getValueVersionsint[] getValueVersions()
if if(this.currentValueIndices == null)
if if(var1 >= 0 && var1 < this.currentValueIndices.length)
if if(var5 != null && var2 >= 0 && var2 < var5.length)
if if(this.currentValueIndices != null)
private void seedDefaultsvoid seedDefaults(int var1, int var2)
public void setLastSentValueVersionvoid setLastSentValueVersion(int var1, int var2)
public void setValuevoid setValue(int var1, int var2, @Nullable StateTransition var3)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.audio.components;

class="kw">import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
class="kw">import com.hypixel.hytale.builtin.audio.AudioPlugin;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.protocol.AudioStateAuthority;
class="kw">import com.hypixel.hytale.protocol.StateTransition;
class="kw">import com.hypixel.hytale.protocol.packets.world.SetAudioState;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiostate.config.AudioState;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Arrays;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class AudioStateComponent class="kw">implements Component<EntityStore> {
   class="kw">private class="kw">transient int[] currentValueIndices;
   class="kw">private class="kw">transient int[] valueVersions;
   class="kw">private class="kw">transient StateTransition[] activeTransitionOverrides;
   class="kw">private class="kw">transient int[] lastSentValueVersions;
   @Nonnull
   class="kw">private class="kw">final class="kw">transient SetAudioState pooledPacket = new SetAudioState();

   class="kw">public AudioStateComponent() {
   }

   class="kw">public class="kw">static ComponentType<EntityStore, AudioStateComponent> getComponentType() {
      class="kw">return AudioPlugin.get().getAudioStateComponentType();
   }

   class="kw">private void ensureArrays() {
      int var1 = AudioState.getAssetMap().getNextIndex();
      if (this.currentValueIndices == null) {
         this.currentValueIndices = new int[var1];
         this.valueVersions = new int[var1];
         this.activeTransitionOverrides = new StateTransition[var1];
         this.lastSentValueVersions = new int[var1];
         this.seedDefaults(0, var1);
      } else if (this.currentValueIndices.length < var1) {
         int var2 = this.currentValueIndices.length;
         this.currentValueIndices = Arrays.copyOf(this.currentValueIndices, var1);
         this.valueVersions = Arrays.copyOf(this.valueVersions, var1);
         this.activeTransitionOverrides = Arrays.copyOf(this.activeTransitionOverrides, var1);
         this.lastSentValueVersions = Arrays.copyOf(this.lastSentValueVersions, var1);
         this.seedDefaults(var2, var1);
      }
   }

   class="kw">private void seedDefaults(int var1, int var2) {
      IndexedLookupTableAssetMap var3 = AudioState.getAssetMap();

      for (int var4 = var1; var4 < var2; var4++) {
         AudioState var5 = var3.getAsset(var4);
         this.currentValueIndices[var4] = var5 != null ? var5.getDefaultValueIndex() : 0;
      }
   }

   class="kw">public void setValue(int var1, int var2, @Nullable StateTransition var3) {
      this.ensureArrays();
      if (var1 >= 0 && var1 < this.currentValueIndices.length) {
         AudioState var4 = AudioState.getAssetMap().getAsset(var1);
         if (var4 != null && var4.getAuthority() == AudioStateAuthority.Server) {
            String[] var5 = var4.getValues();
            if (var5 != null && var2 >= 0 && var2 < var5.length) {
               if (this.currentValueIndices[var1] != var2 || !Objects.equals(this.activeTransitionOverrides[var1], var3)) {
                  this.currentValueIndices[var1] = var2;
                  this.activeTransitionOverrides[var1] = var3;
                  this.valueVersions[var1]++;
               }
            }
         }
      }
   }

   class="kw">public int[] getCurrentValueIndices() {
      this.ensureArrays();
      class="kw">return this.currentValueIndices;
   }

   class="kw">public int[] getValueVersions() {
      this.ensureArrays();
      class="kw">return this.valueVersions;
   }

   class="kw">public StateTransition[] getActiveTransitionOverrides() {
      this.ensureArrays();
      class="kw">return this.activeTransitionOverrides;
   }

   class="kw">public int[] getLastSentValueVersions() {
      this.ensureArrays();
      class="kw">return this.lastSentValueVersions;
   }

   class="kw">public void setLastSentValueVersion(int var1, int var2) {
      this.ensureArrays();
      this.lastSentValueVersions[var1] = var2;
   }

   @Nonnull
   class="kw">public SetAudioState getPooledPacket() {
      class="kw">return this.pooledPacket;
   }

   @Nullable
   @Override
   class="kw">public Component<EntityStore> clone() {
      AudioStateComponent var1 = new AudioStateComponent();
      if (this.currentValueIndices != null) {
         var1.currentValueIndices = (int[])this.currentValueIndices.clone();
         var1.valueVersions = (int[])this.valueVersions.clone();
         var1.activeTransitionOverrides = (StateTransition[])this.activeTransitionOverrides.clone();
         var1.lastSentValueVersions = (int[])this.lastSentValueVersions.clone();
      }

      class="kw">return var1;
   }
}