AudioPlugin class
Пакет: com.hypixel.hytale.builtin.audio
Файл: com/hypixel/hytale/builtin/audio/AudioPlugin.java
extends: JavaPlugin
Поля (6)
| Модификаторы | Тип | Имя |
|---|---|---|
static |
AudioPlugin |
instance |
|
|
instance |
|
ComponentRegistryProxy |
var1 |
|
ComponentRegistryProxy |
var2 |
|
ComponentType |
var3 |
|
ComponentType |
var4 |
Методы (6)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
AudioPlugin |
getAudioPlugin get() |
public |
ComponentType<EntityStore, AudioStateComponent> |
getAudioStateComponentTypeComponentType<EntityStore, AudioStateComponent> getAudioStateComponentType() |
public |
ComponentType<EntityStore, ForcedMusicTracker> |
getForcedMusicTrackerComponentTypeComponentType<EntityStore, ForcedMusicTracker> getForcedMusicTrackerComponentType() |
public |
ComponentType<ChunkStore, MusicEmitterBlock> |
getMusicEmitterBlockComponentTypeComponentType<ChunkStore, MusicEmitterBlock> getMusicEmitterBlockComponentType() |
public |
ComponentType<ChunkStore, MusicPlayerBlock> |
getMusicPlayerBlockComponentTypeComponentType<ChunkStore, MusicPlayerBlock> getMusicPlayerBlockComponentType() |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.audio;
class="kw">import com.hypixel.hytale.assetstore.event.LoadedAssetsEvent;
class="kw">import com.hypixel.hytale.builtin.audio.commands.AudioCommands;
class="kw">import com.hypixel.hytale.builtin.audio.components.AudioStateComponent;
class="kw">import com.hypixel.hytale.builtin.audio.components.ForcedMusicTracker;
class="kw">import com.hypixel.hytale.builtin.audio.components.MusicEmitterBlock;
class="kw">import com.hypixel.hytale.builtin.audio.components.MusicPlayerBlock;
class="kw">import com.hypixel.hytale.builtin.audio.systems.AudioStateSystems;
class="kw">import com.hypixel.hytale.builtin.audio.systems.ForcedMusicSystems;
class="kw">import com.hypixel.hytale.builtin.audio.systems.MusicEmitterSystems;
class="kw">import com.hypixel.hytale.builtin.audio.systems.MusicPlayerSystems;
class="kw">import com.hypixel.hytale.component.ComponentRegistryProxy;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiocategory.config.AudioCategory;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiocategory.config.AudioCategoryDuckingRuleConfig;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">public class AudioPlugin class="kw">extends JavaPlugin {
class="kw">private class="kw">static AudioPlugin instance;
class="kw">private ComponentType<EntityStore, AudioStateComponent> audioStateComponentType;
class="kw">private ComponentType<EntityStore, ForcedMusicTracker> forcedMusicTrackerComponentType;
class="kw">private ComponentType<ChunkStore, MusicEmitterBlock> musicEmitterBlockComponentType;
class="kw">private ComponentType<ChunkStore, MusicPlayerBlock> musicPlayerBlockComponentType;
class="kw">public class="kw">static AudioPlugin get() {
class="kw">return instance;
}
class="kw">public AudioPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
instance = this;
}
@Override
class="kw">protected void setup() {
ComponentRegistryProxy var1 = this.getEntityStoreRegistry();
this.audioStateComponentType = var1.registerComponent(AudioStateComponent.class, AudioStateComponent::new);
this.forcedMusicTrackerComponentType = var1.registerComponent(ForcedMusicTracker.class, ForcedMusicTracker::new);
ComponentRegistryProxy var2 = this.getChunkStoreRegistry();
this.musicEmitterBlockComponentType = var2.registerComponent(MusicEmitterBlock.class, "MusicEmitterBlock", MusicEmitterBlock.CODEC);
var2.registerSystem(new MusicEmitterSystems.Lifecycle(this.musicEmitterBlockComponentType));
var2.registerSystem(new MusicEmitterSystems.PacketSystem(this.musicEmitterBlockComponentType));
var2.registerSystem(new MusicEmitterSystems.Replication(this.musicEmitterBlockComponentType));
this.musicPlayerBlockComponentType = var2.registerComponent(MusicPlayerBlock.class, "MusicPlayerBlock", MusicPlayerBlock.CODEC);
var2.registerSystem(new MusicPlayerSystems.Setup(this.musicPlayerBlockComponentType, this.musicEmitterBlockComponentType));
var2.registerSystem(new MusicPlayerSystems.Tick(this.musicPlayerBlockComponentType, this.musicEmitterBlockComponentType));
ComponentType var3 = Player.getComponentType();
ComponentType var4 = PlayerRef.getComponentType();
var1.registerSystem(new ForcedMusicSystems.Tick(var3, var4, this.forcedMusicTrackerComponentType));
var1.registerSystem(new ForcedMusicSystems.PlayerAdded(var4, this.forcedMusicTrackerComponentType));
var1.registerSystem(new AudioStateSystems.Tick(var3, var4, this.audioStateComponentType));
var1.registerSystem(new AudioStateSystems.PlayerAdded(var4, this.audioStateComponentType));
this.getCommandRegistry().registerCommand(new AudioCommands());
this.getEventRegistry().register(LoadedAssetsEvent.class, AudioCategory.class, var0 -> {
for (AudioCategory var2 : AudioCategory.getAssetMap().getAssetMap().values()) {
AudioCategoryDuckingRuleConfig.resolveTargets(var2.getDuckingRules());
}
for (SoundEvent var4 : SoundEvent.getAssetMap().getAssetMap().values()) {
AudioCategoryDuckingRuleConfig.resolveTargets(var4.getDuckingRules());
var4.invalidatePacketCache();
}
});
this.getEventRegistry().register(LoadedAssetsEvent.class, SoundEvent.class, var0 -> {
for (SoundEvent var2 : var0.getLoadedAssets().values()) {
AudioCategoryDuckingRuleConfig.resolveTargets(var2.getDuckingRules());
var2.invalidatePacketCache();
}
});
}
class="kw">public ComponentType<EntityStore, AudioStateComponent> getAudioStateComponentType() {
class="kw">return this.audioStateComponentType;
}
class="kw">public ComponentType<EntityStore, ForcedMusicTracker> getForcedMusicTrackerComponentType() {
class="kw">return this.forcedMusicTrackerComponentType;
}
class="kw">public ComponentType<ChunkStore, MusicEmitterBlock> getMusicEmitterBlockComponentType() {
class="kw">return this.musicEmitterBlockComponentType;
}
class="kw">public ComponentType<ChunkStore, MusicPlayerBlock> getMusicPlayerBlockComponentType() {
class="kw">return this.musicPlayerBlockComponentType;
}
}