ExplodeFallingBlockImpact class

Пакет: com.hypixel.hytale.builtin.fallingblocks

Файл: com/hypixel/hytale/builtin/fallingblocks/ExplodeFallingBlockImpact.java

extends: FallingBlockImpact

Поля (3)

МодификаторыТипИмя
final String ID
ExplosionConfig var5
Vector3i var9

Методы (3)

МодификаторыВозвратСигнатура
static void explodeFallingBlockvoid explodeFallingBlock(@Nonnull World var0, @Nonnull BlockType var1, @Nonnull Vector3d var2, @Nonnull RotationTuple var3, @Nonnull Store<EntityStore> var4)
abstract explodeFallingBlock explodeFallingBlock(var2, var3, var4, var5, var6)
if if(var5 != null)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
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.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.fallingblocks.FallingBlockImpact;
class="kw">import com.hypixel.hytale.server.core.entity.ExplosionConfig;
class="kw">import com.hypixel.hytale.server.core.entity.ExplosionUtils;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.BlockHarvestUtils;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.ExplodeInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
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">import org.joml.Vector3i;

class="kw">public class ExplodeFallingBlockImpact class="kw">extends FallingBlockImpact {
   class="kw">public class="kw">static class="kw">final String ID = "Explode";
   class="kw">public class="kw">static class="kw">final BuilderCodec<ExplodeFallingBlockImpact> CODEC = BuilderCodec.builder(ExplodeFallingBlockImpact.class, ExplodeFallingBlockImpact::new)
      .build();

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

   @Override
   class="kw">public void apply(
      @Nonnull Ref<ChunkStore> var1,
      @Nonnull World var2,
      @Nonnull BlockType var3,
      @Nonnull Vector3d var4,
      @Nonnull RotationTuple var5,
      @Nonnull Store<EntityStore> var6,
      @Nonnull Ref<EntityStore> var7,
      @Nonnull CommandBuffer<EntityStore> var8
   ) {
      Vector3i var9 = new Vector3i(MathUtil.floor(var4.x), MathUtil.floor(var4.y), MathUtil.floor(var4.z));
      explodeFallingBlock(var2, var3, var4, var5, var6);
      BlockHarvestUtils.queueOnBreakImpactInteraction(var7, var3, var9, var5.index(), var8);
   }

   class="kw">public class="kw">static void explodeFallingBlock(
      @Nonnull World var0, @Nonnull BlockType var1, @Nonnull Vector3d var2, @Nonnull RotationTuple var3, @Nonnull Store<EntityStore> var4
   ) {
      ExplosionConfig var5 = var1.getExplosionConfig();
      if (var5 != null) {
         var0.execute(
            () -> ExplosionUtils.performExplosion(
               ExplodeInteraction.DAMAGE_SOURCE_EXPLOSION, var2, new Rotation3f(0.0F, 0.0F, 0.0F), var5, null, var4, var0.getChunkStore().getStore()
            )
         );
      }
   }
}