Instantiate class

Пакет: com.hypixel.hytale.builtin.portals.systems.voidevent

Файл: com/hypixel/hytale/builtin/portals/systems/voidevent/VoidSpawnerSystems.java

extends: RefSystem<EntityStore>

Поля (18)

МодификаторыТипИмя
VoidSpawner var10
TransformComponent var11
Vector3d var12
String var14
Vector3d var15
int var16
BeaconSpawnWrapper var17
Holder var18
UUID var19
String var20
World var5
World var5
PortalGameplayConfig var6
VoidSpawner var6
VoidEventConfig var7
InvasionPortalConfig var8
List var9
Ref var9

Методы (7)

МодификаторыВозвратСигнатура
abstract for for(int var13 = 0; var13 < var9.size()
public Query<EntityStore> getQuerypublic Query<EntityStore> getQuery()
if if(var16 == -1)
if if(var20 != null)
if if(var9 != null)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.portals.systems.voidevent;

class="kw">import com.hypixel.hytale.builtin.portals.components.voidevent.VoidSpawner;
class="kw">import com.hypixel.hytale.builtin.portals.components.voidevent.config.InvasionPortalConfig;
class="kw">import com.hypixel.hytale.builtin.portals.components.voidevent.config.VoidEventConfig;
class="kw">import com.hypixel.hytale.builtin.portals.integrations.PortalGameplayConfig;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
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.RefSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.spawning.SpawningPlugin;
class="kw">import com.hypixel.hytale.server.spawning.assets.spawns.config.BeaconNPCSpawn;
class="kw">import com.hypixel.hytale.server.spawning.beacons.LegacySpawnBeaconEntity;
class="kw">import com.hypixel.hytale.server.spawning.wrappers.BeaconSpawnWrapper;
class="kw">import java.util.List;
class="kw">import java.util.UUID;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class="kw">final class VoidSpawnerSystems {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(VoidSpawner.getComponentType(), TransformComponent.getComponentType());

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

   class="kw">public class="kw">static class Instantiate class="kw">extends RefSystem<EntityStore> {
      class="kw">public Instantiate() {
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         HytaleLogger.getLogger().at(Level.INFO).log("Adding void spawner...");
         World var5 = var3.getExternalData().getWorld();
         PortalGameplayConfig var6 = var5.getGameplayConfig().getPluginConfig().get(PortalGameplayConfig.class);
         VoidEventConfig var7 = var6.getVoidEvent();
         InvasionPortalConfig var8 = var7.getInvasionPortalConfig();
         List var9 = var8.getSpawnBeaconsList();
         if (var9.isEmpty()) {
            HytaleLogger.getLogger()
               .at(Level.WARNING)
               .log("No spawn beacons configured for void spawn in GameplayConfig for portal world (no mobs will spawn during void event)");
         } else {
            VoidSpawner var10 = var4.getComponent(var1, VoidSpawner.getComponentType());
            TransformComponent var11 = var4.getComponent(var1, TransformComponent.getComponentType());
            Vector3d var12 = var11.getPosition();

            for (int var13 = 0; var13 < var9.size(); var13++) {
               String var14 = var9.get(var13);
               Vector3d var15 = new Vector3d(var12).add(0.0, 0.5 + 0.1 * var13, 0.0);
               int var16 = BeaconNPCSpawn.getAssetMap().getIndexOrDefault(var14, -1);
               if (var16 == -1) {
                  HytaleLogger.getLogger().at(Level.WARNING).log("No asset found for spawn beacon \"%s\" in GameplayConfig for portal world", var14);
               } else {
                  BeaconSpawnWrapper var17 = SpawningPlugin.get().getBeaconSpawnWrapper(var16);
                  Holder var18 = LegacySpawnBeaconEntity.createHolder(var17, var15, var11.getRotation());
                  var4.addEntity(var18, AddReason.SPAWN);
                  UUID var19 = var18.getComponent(UUIDComponent.getComponentType()).getUuid();
                  var10.getSpawnBeaconUuids().add(var19);
               }
            }

            String var20 = var8.getOnSpawnParticles();
            if (var20 != null) {
               ParticleUtil.spawnParticleEffect(var20, var12, var4);
            }
         }
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
      ) {
         World var5 = var3.getExternalData().getWorld();
         VoidSpawner var6 = var4.getComponent(var1, VoidSpawner.getComponentType());
         assert var6 != null;

         for (UUID var8 : var6.getSpawnBeaconUuids()) {
            Ref var9 = var5.getEntityStore().getRefFromUUID(var8);
            if (var9 != null) {
               var4.removeEntity(var9, RemoveReason.REMOVE);
            }
         }
      }

      @Nullable
      @Override
      class="kw">public Query<EntityStore> getQuery() {
         class="kw">return VoidSpawnerSystems.QUERY;
      }
   }
}