TempleRespawnPlayersSystem class

Пакет: com.hypixel.hytale.builtin.adventure.memories.temple

Файл: com/hypixel/hytale/builtin/adventure/memories/temple/TempleRespawnPlayersSystem.java

extends: DelayedEntitySystem<EntityStore>

Поля (10)

МодификаторыТипИмя
Vector3d var10
Ref var11
ISpawnProvider var12
Transform var13
Teleport var14
PlayerRef var15
World var6
GameplayConfig var7
ForgottenTempleConfig var8
TransformComponent var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var8 != null)
abstract super super(1.0F)

Исходный код

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

class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
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.query.Query;
class="kw">import com.hypixel.hytale.component.system.tick.DelayedEntitySystem;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.spawn.ISpawnProvider;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class TempleRespawnPlayersSystem class="kw">extends DelayedEntitySystem<EntityStore> {
   @Nonnull
   class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType;
   @Nonnull
   class="kw">private class="kw">final ComponentType<EntityStore, TransformComponent> transformComponentType;
   @Nonnull
   class="kw">private class="kw">final Query<EntityStore> query;

   class="kw">public TempleRespawnPlayersSystem(@Nonnull ComponentType<EntityStore, PlayerRef> var1, @Nonnull ComponentType<EntityStore, TransformComponent> var2) {
      super(1.0F);
      this.playerRefComponentType = var1;
      this.transformComponentType = var2;
      this.query = Query.and(var1, var2);
   }

   @Override
   class="kw">public void tick(float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5) {
      World var6 = var4.getExternalData().getWorld();
      GameplayConfig var7 = var6.getGameplayConfig();
      ForgottenTempleConfig var8 = var7.getPluginConfig().get(ForgottenTempleConfig.class);
      if (var8 != null) {
         TransformComponent var9 = var3.getComponent(var2, this.transformComponentType);
         assert var9 != null;
         Vector3d var10 = var9.getPosition();
         if (!(var10.y() > var8.getMinYRespawn())) {
            Ref var11 = var3.getReferenceTo(var2);
            ISpawnProvider var12 = var6.getWorldConfig().getSpawnProvider();
            Transform var13 = var12.getSpawnPoint(var11, var5);
            Teleport var14 = Teleport.createForPlayer(null, var13);
            var5.addComponent(var11, Teleport.getComponentType(), var14);
            PlayerRef var15 = var3.getComponent(var2, this.playerRefComponentType);
            assert var15 != null;
            SoundUtil.playSoundEvent2dToPlayer(var15, var8.getRespawnSoundIndex(), SoundCategory.SFX);
         }
      }
   }

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