CancelParticlesEffect class

Пакет: com.hypixel.hytale.builtin.triggervolumes.effect.builtin

Файл: com/hypixel/hytale/builtin/triggervolumes/effect/builtin/CancelParticlesEffect.java

extends: TriggerEffect

Поля (11)

МодификаторыТипИмя
List var11
ComponentType var12
PlayerRef var15
Store var2
VolumeEntry var3
Vector3d var4
Vector3d var5
CancelParticleSystems var6
SpatialResource var7
Vector3d var8
double var9

Методы (3)

МодификаторыВозвратСигнатура
for for(Ref var14 : var11)
if if(var7 != null)
if if(var15 != null)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerContext;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.VolumeEntry;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.common.util.ArrayUtil;
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.spatial.SpatialResource;
class="kw">import com.hypixel.hytale.protocol.Position;
class="kw">import com.hypixel.hytale.protocol.packets.world.CancelParticleSystems;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class CancelParticlesEffect class="kw">extends TriggerEffect {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<CancelParticlesEffect> CODEC = BuilderCodec.builder(CancelParticlesEffect.class, CancelParticlesEffect::new, BASE_CODEC)
      .append(
         new KeyedCodec<>("ParticleSystems", Codec.STRING_ARRAY, false),
         (var0, var1) -> var0.particleSystems = var1 != null ? var1 : ArrayUtil.EMPTY_STRING_ARRAY,
         var0 -> var0.particleSystems.length == 0 ? null : var0.particleSystems
      )
      .add()
      .append(new KeyedCodec<>("Instant", Codec.BOOLEAN, false), (var0, var1) -> var0.instant = var1, var0 -> var0.instant ? Boolean.TRUE : null)
      .add()
      .build();
   @Nonnull
   class="kw">private String[] particleSystems = ArrayUtil.EMPTY_STRING_ARRAY;
   class="kw">private boolean instant;

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

   @Override
   class="kw">public void execute(@Nonnull TriggerContext var1) {
      Store var2 = var1.getStore();
      VolumeEntry var3 = var1.getVolume();
      Vector3d var4 = new Vector3d();
      Vector3d var5 = new Vector3d();
      var3.getShape().getWorldAABB(var3.getPosition(), var4, var5);
      CancelParticleSystems var6 = new CancelParticleSystems(
         new Position(var4.x(), var4.y(), var4.z()),
         new Position(var5.x(), var5.y(), var5.z()),
         this.particleSystems.length == 0 ? null : this.particleSystems,
         this.instant
      );
      SpatialResource var7 = var2.getResource(EntityModule.get().getPlayerSpatialResourceType());
      if (var7 != null) {
         Vector3d var8 = var3.getPosition();
         double var9 = var3.getShape().getMaxDistanceFromOrigin() + 75.0;
         List var11 = SpatialResource.getThreadLocalReferenceList();
         var7.getSpatialStructure().collect(var8, var9, var11);
         ComponentType var12 = PlayerRef.getComponentType();

         for (Ref var14 : var11) {
            if (var14.isValid()) {
               PlayerRef var15 = var2.getComponent(var14, var12);
               if (var15 != null) {
                  var15.getPacketHandler().writeNoCache(var6);
               }
            }
         }
      }
   }
}