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