SpawnEffect interface

Пакет: com.hypixel.hytale.server.npc.role

Файл: com/hypixel/hytale/server/npc/role/SpawnEffect.java

Поля (9)

МодификаторыТипИмя
List var10
ModelParticle var11
NetworkId var12
SpawnModelParticles var13
PlayerRef var16
String var6
Vector3d var7
Vector3d var8
SpatialResource var9

Методы (10)

МодификаторыВозвратСигнатура
for for(Ref var15 : var10)
abstract Vector3d getSpawnParticleOffsetVector3d getSpawnParticleOffset(@Nonnull BuilderSupport var1)
abstract String getSpawnParticleTargetNodeString getSpawnParticleTargetNode(@Nonnull BuilderSupport var1)
abstract String getSpawnParticlesString getSpawnParticles(@Nonnull BuilderSupport var1)
abstract double getSpawnViewDistancedouble getSpawnViewDistance()
if if(var8 != null)
if if(var12 != null)
if if(var16 != null)
abstract boolean isSpawnParticleDetachedboolean isSpawnParticleDetached(@Nonnull BuilderSupport var1)
default void spawnEffectvoid spawnEffect(@Nonnull Holder<EntityStore> var1, @Nonnull BuilderSupport var2, @Nonnull Vector3d var3, @Nonnull Rotation3f var4, @Nonnull ComponentAccessor<EntityStore> var5)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.role;

class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.protocol.packets.entities.SpawnModelParticles;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelParticle;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.NetworkId;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3f;

class="kw">public class="kw">interface SpawnEffect {
   String getSpawnParticles(@Nonnull BuilderSupport var1);

   Vector3d getSpawnParticleOffset(@Nonnull BuilderSupport var1);

   String getSpawnParticleTargetNode(@Nonnull BuilderSupport var1);

   boolean isSpawnParticleDetached(@Nonnull BuilderSupport var1);

   double getSpawnViewDistance();

   class="kw">default void spawnEffect(
      @Nonnull Holder<EntityStore> var1,
      @Nonnull BuilderSupport var2,
      @Nonnull Vector3d var3,
      @Nonnull Rotation3f var4,
      @Nonnull ComponentAccessor<EntityStore> var5
   ) {
      String var6 = this.getSpawnParticles(var2);
      if (var6 != null && !var6.isEmpty()) {
         Vector3d var7 = new Vector3d(0.0, 0.0, 0.0);
         Vector3d var8 = this.getSpawnParticleOffset(var2);
         if (var8 != null) {
            var7.set(var8);
         }

         var7.rotateY(var4.yaw()).add(var3);
         SpatialResource var9 = var5.getResource(EntityModule.get().getPlayerSpatialResourceType());
         List var10 = SpatialResource.getThreadLocalReferenceList();
         var9.getSpatialStructure().collect(var7, this.getSpawnViewDistance(), var10);
         ParticleUtil.spawnParticleEffect(var6, var7, var10, var5);
         ModelParticle var11 = new ModelParticle();
         var11.setSystemId(var6);
         var11.setPositionOffset(new Vector3f((float)var7.x, (float)var7.y, (float)var7.z));
         var11.setTargetNodeName(this.getSpawnParticleTargetNode(var2));
         var11.setDetachedFromModel(this.isSpawnParticleDetached(var2));
         NetworkId var12 = var1.getComponent(NetworkId.getComponentType());
         if (var12 != null) {
            SpawnModelParticles var13 = new SpawnModelParticles(var12.getId(), new com.hypixel.hytale.protocol.ModelParticle[]{var11.toPacket()});

            for (Ref var15 : var10) {
               PlayerRef var16 = var5.getComponent(var15, PlayerRef.getComponentType());
               if (var16 != null) {
                  var16.getPacketHandler().write(var13);
               }
            }
         }
      }
   }
}