AudioSystems class

Пакет: com.hypixel.hytale.server.core.modules.entity.system

Файл: com/hypixel/hytale/server/core/modules/entity/system/AudioSystems.java

Поля (23)

МодификаторыТипИмя
private final ComponentType<EntityStore, AudioComponent> audioComponentType
private final Query<EntityStore> query
int var10
Ref var11
Vector3d var12
BlockType var13
int var14
BlockSoundSet var15
int var16
MovementStatesComponent var17
AudioUpdate var3
BlockType var5
EntityTrackerSystems.Visible var6
TransformComponent var6
int var6
AudioComponent var7
PositionDataComponent var7
BlockSoundSet var7
Ref var8
MovementAudioComponent var8
int var8
int var9
private final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType

Методы (21)

МодификаторыВозвратСигнатура
public EntityTrackerUpdatepublic EntityTrackerUpdate()
public TickMovementAudiopublic TickMovementAudio()
public SystemGroup<EntityStore> getGrouppublic SystemGroup<EntityStore> getGroup()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var10 != var9)
if if(var10 != 0)
if if(var14 != 0)
if if(var16 != 0)
if if(var4 != 0)
if if(var6 != 0)
if if(var8 != 0)
public boolean isParallelpublic boolean isParallel(int var1, int var2)
private static void playMoveInSoundprivate static void playMoveInSound(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull MovementAudioComponent var2, @Nonnull Vector3d var3, int var4)
abstract playMoveInSound playMoveInSound(var11, var4, var8, var12, var9)
abstract playMoveInSound playMoveInSound(var11, var5, var8, var12, var9)
private static void queueUpdatesForprivate static void queueUpdatesFor(@Nonnull Ref<EntityStore> var0, @Nonnull AudioComponent var1, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var2)
abstract queueUpdatesFor queueUpdatesFor(var8, var7, var6.visibleTo)
abstract queueUpdatesFor queueUpdatesFor(var8, var7, var6.newlyVisibleTo)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)
public void tickpublic void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.system;

class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.SystemGroup;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
class="kw">import com.hypixel.hytale.math.random.RandomExtra;
class="kw">import com.hypixel.hytale.protocol.AudioUpdate;
class="kw">import com.hypixel.hytale.protocol.BlockSoundEvent;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocksound.config.BlockSoundSet;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.AudioComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.MovementAudioComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PositionDataComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

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

   class="kw">public class="kw">static class EntityTrackerUpdate class="kw">extends EntityTickingSystem<EntityStore> {
      class="kw">private class="kw">final ComponentType<EntityStore, EntityTrackerSystems.Visible> visibleComponentType = EntityTrackerSystems.Visible.getComponentType();
      class="kw">private class="kw">final ComponentType<EntityStore, AudioComponent> audioComponentType = AudioComponent.getComponentType();
      class="kw">private class="kw">final Query<EntityStore> query = Query.and(this.visibleComponentType, this.audioComponentType);

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

      @Nullable
      @Override
      class="kw">public SystemGroup<EntityStore> getGroup() {
         class="kw">return EntityTrackerSystems.QUEUE_UPDATE_GROUP;
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return this.query;
      }

      @Override
      class="kw">public boolean isParallel(int var1, int var2) {
         class="kw">return EntityTickingSystem.maybeUseParallel(var1, var2);
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         EntityTrackerSystems.Visible var6 = var3.getComponent(var2, this.visibleComponentType);
         assert var6 != null;
         AudioComponent var7 = var3.getComponent(var2, this.audioComponentType);
         assert var7 != null;
         Ref var8 = var3.getReferenceTo(var2);
         if (var7.consumeNetworkOutdated()) {
            queueUpdatesFor(var8, var7, var6.visibleTo);
         } else if (!var6.newlyVisibleTo.isEmpty()) {
            queueUpdatesFor(var8, var7, var6.newlyVisibleTo);
         }
      }

      class="kw">private class="kw">static void queueUpdatesFor(
         @Nonnull Ref<EntityStore> var0, @Nonnull AudioComponent var1, @Nonnull Map<Ref<EntityStore>, EntityTrackerSystems.EntityViewer> var2
      ) {
         AudioUpdate var3 = new AudioUpdate(var1.getSoundEventIds());

         for (Entry var5 : var2.entrySet()) {
            var5.getValue().queueUpdate(var0, var3);
         }
      }
   }

   class="kw">public class="kw">static class TickMovementAudio class="kw">extends EntityTickingSystem<EntityStore> {
      class="kw">public TickMovementAudio() {
      }

      @Nonnull
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return Query.and(
            TransformComponent.getComponentType(),
            PositionDataComponent.getComponentType(),
            MovementAudioComponent.getComponentType(),
            MovementStatesComponent.getComponentType()
         );
      }

      @Override
      class="kw">public void tick(
         float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5
      ) {
         TransformComponent var6 = var3.getComponent(var2, TransformComponent.getComponentType());
         assert var6 != null;
         PositionDataComponent var7 = var3.getComponent(var2, PositionDataComponent.getComponentType());
         assert var7 != null;
         MovementAudioComponent var8 = var3.getComponent(var2, MovementAudioComponent.getComponentType());
         assert var8 != null;
         int var9 = var7.getInsideBlockTypeId();
         int var10 = var8.getLastInsideBlockTypeId();
         Ref var11 = var3.getReferenceTo(var2);
         Vector3d var12 = var6.getPosition();
         if (var10 != var9) {
            var8.setLastInsideBlockTypeId(var9);
            playMoveInSound(var11, var4, var8, var12, var9);
            if (var10 != 0) {
               BlockType var13 = BlockType.getAssetMap().getAsset(var10);
               int var14 = var13.getBlockSoundSetIndex();
               if (var14 != 0) {
                  BlockSoundSet var15 = BlockSoundSet.getAssetMap().getAsset(var14);
                  int var16 = var15.getSoundEventIndices().getOrDefault(BlockSoundEvent.MoveOut, 0);
                  if (var16 != 0) {
                     SoundUtil.playSoundEvent3d(var16, SoundCategory.SFX, var12.x, var12.y, var12.z, var8.getShouldHearPredicate(var11), var5);
                  }
               }
            }
         }

         MovementStatesComponent var17 = var3.getComponent(var2, MovementStatesComponent.getComponentType());
         assert var17 != null;
         if (!var17.getMovementStates().idle && var8.canMoveInRepeat() && var8.tickMoveInRepeat(var1)) {
            playMoveInSound(var11, var5, var8, var12, var9);
         }
      }

      class="kw">private class="kw">static void playMoveInSound(
         @Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull MovementAudioComponent var2, @Nonnull Vector3d var3, int var4
      ) {
         var2.setNextMoveInRepeat(MovementAudioComponent.NO_REPEAT);
         if (var4 != 0) {
            BlockType var5 = BlockType.getAssetMap().getAsset(var4);
            int var6 = var5.getBlockSoundSetIndex();
            if (var6 != 0) {
               BlockSoundSet var7 = BlockSoundSet.getAssetMap().getAsset(var6);
               int var8 = var7.getSoundEventIndices().getOrDefault(BlockSoundEvent.MoveIn, 0);
               if (var8 != 0) {
                  SoundUtil.playSoundEvent3d(var8, SoundCategory.SFX, var3.x, var3.y, var3.z, var2.getShouldHearPredicate(var0), var1);
                  var2.setNextMoveInRepeat(
                     RandomExtra.randomRange(var7.getMoveInRepeatRange().getInclusiveMin(), var7.getMoveInRepeatRange().getInclusiveMax())
                  );
               }
            }
         }
      }
   }
}