From 9a42fed16c44f83f6295a6f34b44c3a8e2f82ea2 Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Sat, 12 Nov 2022 10:16:34 +0100 Subject: [PATCH] fix: EMP tower properly deletes missiles --- austri3Fix.md | 1 - src/main/java/icbm/zhapin/daodan/EMissile.java | 2 +- src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java | 6 ++++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/austri3Fix.md b/austri3Fix.md index 2cddc79..a5028b2 100644 --- a/austri3Fix.md +++ b/austri3Fix.md @@ -7,6 +7,5 @@ - flying blocks dont properly render - black hole doesn't suck in blocks - remote detonator doesnt work -- emp tower only deletes missiles on client - see `// TODO: WTF` diff --git a/src/main/java/icbm/zhapin/daodan/EMissile.java b/src/main/java/icbm/zhapin/daodan/EMissile.java index ca52089..b09d9c7 100644 --- a/src/main/java/icbm/zhapin/daodan/EMissile.java +++ b/src/main/java/icbm/zhapin/daodan/EMissile.java @@ -576,7 +576,7 @@ public class EMissile extends Entity public void explode() { try { - if (!this.exploded) { + if (!this.exploded && !this.isDead) { if (this.missileId == 0) { if (!super.worldObj.isRemote) { super.worldObj.createExplosion( diff --git a/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java b/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java index 9c0fe26..7e4103f 100644 --- a/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java +++ b/src/main/java/icbm/zhapin/jiqi/TLauncherControlPanel.java @@ -82,7 +82,8 @@ public class TLauncherControlPanel nbt.setInteger("frequency", this.getFrequency()); nbt.setShort("height", this.height); nbt.setInteger("disabledTicks", this.disabledTicks); - nbt.setTag("target", super.target.writeToNBT(new NBTTagCompound())); + if (super.target != null) + nbt.setTag("target", super.target.writeToNBT(new NBTTagCompound())); return new S35PacketUpdateTileEntity( this.xCoord, this.yCoord, this.zCoord, this.getBlockMetadata(), nbt @@ -106,7 +107,8 @@ public class TLauncherControlPanel this.setFrequency(nbt.getInteger("frequency")); this.height = nbt.getShort("height"); this.disabledTicks = nbt.getInteger("disabledTicks"); - super.target = Vector3.readFromNBT(nbt.getCompoundTag("target")); + if (nbt.hasKey("target")) + super.target = Vector3.readFromNBT(nbt.getCompoundTag("target")); } // TODO: WTF