DeployableTrapSpawnerConfig class

Пакет: com.hypixel.hytale.builtin.deployables.config

Файл: com/hypixel/hytale/builtin/deployables/config/DeployableTrapSpawnerConfig.java

extends: DeployableTrapConfig

Поля (21)

МодификаторыТипИмя
break
break
break
break
break
int var1
DeployableConfig var13
Vector3d[] var14
Vector3d var19
String var3
Instant var3
DeployableComponent var3
Instant var4
TransformComponent var5
TransformComponent var6
Vector3d var6
Ref var7
Vector3d var7
Ref var7
float var8
World var8

Методы (16)

МодификаторыВозвратСигнатура
for for(int var2 = 0; var2 < var1; var2++)
for for(DeployableSpawner var12 : this.deployableSpawners)
for for(Vector3d var18 : var14)
if if(var0.deployableSpawnerIds != null)
if if(var6 != null)
if if(var5 != null)
if if(this.deployableSpawners != null)
if if(var12 != null)
if if(var3 != null)
abstract playAnimation playAnimation(var1, var3, this, "Deploy")
private void tickDeployAnimationStatevoid tickDeployAnimationState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3)
private void tickDeploymentStatevoid tickDeploymentState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3)
private void tickDespawnStatevoid tickDespawnState(@Nonnull DeployableComponent var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3)
private void tickFuzeStatevoid tickFuzeState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2)
private void tickLiveStatevoid tickLiveState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, float var5)
private void tickTriggeredStatevoid tickTriggeredState(@Nonnull CommandBuffer<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull DeployableComponent var3, @Nonnull Ref<EntityStore> var4)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.deployables.DeployablesUtils;
class="kw">import com.hypixel.hytale.builtin.deployables.component.DeployableComponent;
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.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.time.TimeResource;
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 java.time.Instant;
class="kw">import java.time.temporal.ChronoUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class DeployableTrapSpawnerConfig class="kw">extends DeployableTrapConfig {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<DeployableTrapSpawnerConfig> CODEC = BuilderCodec.builder(
         DeployableTrapSpawnerConfig.class, DeployableTrapSpawnerConfig::new, DeployableTrapConfig.CODEC
      )
      .appendInherited(
         new KeyedCodec<>("DeployableConfig", new ArrayCodec<>(Codec.STRING, String[]::new)),
         (var0, var1) -> var0.deployableSpawnerIds = var1,
         var0 -> var0.deployableSpawnerIds,
         (var0, var1) -> var0.deployableSpawnerIds = var1.deployableSpawnerIds
      )
      .addValidator(Validators.nonNull())
      .add()
      .afterDecode(var0 -> {
         if (var0.deployableSpawnerIds != null) {
            int var1 = var0.deployableSpawnerIds.length;
            var0.deployableSpawners = new DeployableSpawner[var1];

            for (int var2 = 0; var2 < var1; var2++) {
               String var3 = var0.deployableSpawnerIds[var2];
               var0.deployableSpawners[var2] = DeployableSpawner.getAssetMap().getAsset(var3);
            }
         }
      })
      .build();
   class="kw">private String[] deployableSpawnerIds;
   class="kw">private DeployableSpawner[] deployableSpawners;

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

   @Override
   class="kw">public void tick(
      @Nonnull DeployableComponent var1,
      float var2,
      int var3,
      @Nonnull ArchetypeChunk<EntityStore> var4,
      @Nonnull Store<EntityStore> var5,
      @Nonnull CommandBuffer<EntityStore> var6
   ) {
      Ref var7 = var4.getReferenceTo(var3);
      class="kw">switch (var1.getFlag(DeployableComponent.DeployableFlag.STATE)) {
         case 0:
            this.tickDeploymentState(var5, var1, var7);
            break;
         case 1:
            this.tickDeployAnimationState(var5, var1, var7);
            break;
         case 2:
            this.tickFuzeState(var5, var1);
            break;
         case 3:
            this.tickLiveState(var5, var1, var7, var6, var2);
            break;
         case 4:
            this.tickTriggeredState(var6, var5, var1, var7);
            break;
         case 5:
            this.tickDespawnState(var1, var7, var5);
      }
   }

   class="kw">private void tickDeploymentState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) {
      var2.setFlag(DeployableComponent.DeployableFlag.STATE, 1);
      playAnimation(var1, var3, this, "Deploy");
   }

   class="kw">private void tickDeployAnimationState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) {
      var2.setFlag(DeployableComponent.DeployableFlag.STATE, 2);
      playAnimation(var1, var3, this, "Deploy");
   }

   class="kw">private void tickFuzeState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2) {
      Instant var3 = var1.getResource(TimeResource.getResourceType()).getNow();
      Instant var4 = var2.getSpawnInstant().plus((long)this.fuzeDuration, ChronoUnit.SECONDS);
      if (var3.isAfter(var4)) {
         var2.setFlag(DeployableComponent.DeployableFlag.STATE, 3);
      }
   }

   class="kw">private void tickLiveState(
      @Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, float var5
   ) {
      TransformComponent var6 = var1.getComponent(var3, TransformComponent.getComponentType());
      if (var6 != null) {
         Vector3d var7 = var6.getPosition();
         float var8 = this.getRadius(var1, var2.getSpawnInstant());
         var2.setTimeSinceLastAttack(var2.getTimeSinceLastAttack() + var5);
         if (var2.getTimeSinceLastAttack() > this.damageInterval && this.isLive(var1, var2)) {
            var2.setTimeSinceLastAttack(0.0F);
            this.handleDetection(var1, var4, var3, var2, var7, var8, this.getDamageCause());
         }
      }
   }

   class="kw">private void tickTriggeredState(
      @Nonnull CommandBuffer<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull DeployableComponent var3, @Nonnull Ref<EntityStore> var4
   ) {
      TransformComponent var5 = var2.getComponent(var4, TransformComponent.getComponentType());
      if (var5 != null) {
         var3.setFlag(DeployableComponent.DeployableFlag.STATE, 5);
         Vector3d var6 = var5.getPosition();
         Ref var7 = var3.getOwner();
         World var8 = var2.getExternalData().getWorld();
         if (this.deployableSpawners != null) {
            for (DeployableSpawner var12 : this.deployableSpawners) {
               if (var12 != null) {
                  DeployableConfig var13 = var12.getConfig();
                  Vector3d[] var14 = var12.getPositionOffsets();

                  for (Vector3d var18 : var14) {
                     Vector3d var19 = new Vector3d(var6).add(var18);
                     var8.execute(() -> DeployablesUtils.spawnDeployable(var1, var2, var13, var7, var19, new Rotation3f(), "UP"));
                  }
               }
            }
         }
      }
   }

   class="kw">private void tickDespawnState(@Nonnull DeployableComponent var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3) {
      var1.setFlag(DeployableComponent.DeployableFlag.STATE, 6);
      super.onTriggered(var3, var2);
   }

   @Override
   class="kw">protected void onTriggered(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
      DeployableComponent var3 = var1.getComponent(var2, DeployableComponent.getComponentType());
      if (var3 != null) {
         var3.setFlag(DeployableComponent.DeployableFlag.STATE, 4);
      }
   }
}