From 9bb9a56452771f7e27ce1bce1490be8c2d18f4d6 Mon Sep 17 00:00:00 2001 From: mlbv <51232730+mlbv@users.noreply.github.com> Date: Fri, 23 May 2025 01:47:29 +0800 Subject: [PATCH] Fix: setDead() now correctly calls cancel() --- .../java/com/hbm/entity/logic/EntityNukeExplosionMK5.java | 7 +++++++ .../java/com/hbm/explosion/ExplosionNukeRayBatched.java | 7 +++++++ .../com/hbm/explosion/ExplosionNukeRayParallelized.java | 1 + src/main/java/com/hbm/interfaces/IExplosionRay.java | 2 ++ 4 files changed, 17 insertions(+) diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java index def573ad7..95965c95c 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK5.java @@ -133,6 +133,13 @@ public class EntityNukeExplosionMK5 extends EntityExplosionChunkloading { } } + @Override + public void setDead(){ + if(explosion != null) + explosion.cancel(); + super.setDead(); + } + @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.ticksExisted = nbt.getInteger("ticksExisted"); diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 6f7af5e35..1d97dfa38 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -272,6 +272,13 @@ public class ExplosionNukeRayBatched implements IExplosionRay { processChunk(); } + @Override + public void cancel() { + isAusf3Complete = true; + if (perChunk != null) perChunk.clear(); + if (orderedChunks != null) orderedChunks.clear(); + } + public class FloatTriplet { public float xCoord; public float yCoord; diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java index bc0cf57a8..2c8eb6761 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayParallelized.java @@ -195,6 +195,7 @@ public class ExplosionNukeRayParallelized implements IExplosionRay { return collectFinished && destroyFinished; } + @Override public void cancel() { this.collectFinished = true; this.destroyFinished = true; diff --git a/src/main/java/com/hbm/interfaces/IExplosionRay.java b/src/main/java/com/hbm/interfaces/IExplosionRay.java index 2ee6ac78b..d164b6b27 100644 --- a/src/main/java/com/hbm/interfaces/IExplosionRay.java +++ b/src/main/java/com/hbm/interfaces/IExplosionRay.java @@ -6,4 +6,6 @@ public interface IExplosionRay { void cacheChunksTick(int processTime); void destructionTick(int processTime); + + void cancel(); }