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