From 40b40ab638ee5671a5f609dd05176404a527ef83 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 6 Mar 2018 00:03:11 +0100 Subject: [PATCH] Radar fix --- assets/hbm/textures/gui/gui_radar.png | Bin 1829 -> 1904 bytes assets/hbm/textures/models/alpha.png | Bin 0 -> 1479 bytes .../missile/EntityMissileBaseAdvanced.java | 4 +- .../entity/missile/EntityMissileNuclear.java | 4 +- com/hbm/inventory/gui/GUIMachineRadar.java | 1 + com/hbm/lib/HbmWorldGen.java | 2 +- com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/packet/TERadarDestructorPacket.java | 64 +++++++++++++ com/hbm/packet/TERadarPacket.java | 6 +- com/hbm/render/entity/RenderCloudFleija.java | 6 +- com/hbm/render/entity/RenderSmallNukeMK3.java | 86 ++++++++++++++++++ .../machine/TileEntityMachineRadar.java | 39 ++++++-- 12 files changed, 194 insertions(+), 20 deletions(-) create mode 100644 assets/hbm/textures/models/alpha.png create mode 100644 com/hbm/packet/TERadarDestructorPacket.java create mode 100644 com/hbm/render/entity/RenderSmallNukeMK3.java diff --git a/assets/hbm/textures/gui/gui_radar.png b/assets/hbm/textures/gui/gui_radar.png index 22d33bda2eaf13974bc9f2bd67d9ee2bd406d37f..2189848df65b057ce49058030295331cfa57b93f 100644 GIT binary patch delta 1438 zcmY*XdoDNA4yu@Ix`_nId5x|Y=4HMJ8clPGr{*EH2;z-Ye7s`8N;FyI`hX^U<4 z`Y}=)$_2YCHW(tM2VeRRV z$RPr@sY!C zQ=|tv%ve$AC@735shXrP+_}M;*+sQUfv9iZ5Pydf0h}1Kp}l$UHKtLJj}sPHb}W}j z-~w8;r(l*M&hrk3OI`rPkp~uP`FOP$S8>{EvV2zq_@-PJ>w2 zkuKQLSlD=Gl{+7A@H{85?{?*h{*5S%#$p+=x(k@QapTyZmdY>rc`z#o5DP*cU@?*5 zECx~!_7JaZ8I*+1Rfw3cs#)uuk<2gT0g1dDBh9YQ29~0n=w6|0{xL?X7j@AupSz;p zp%_~ektS<>gA!sW=LF@das8=}OLU`@@V@!GH#6HiL+U_8bG6V+zg>GrwreUeE6W(;$A57!`{jvn%|Y{iufF>#1-5)Fel zV~p5Md@{KaZzW!AG?!G#inqUQL)OcSFj8Me%r>>#+(jSOGgK1m8hW?=iFMVGf-w2q z^3qcIO+UBILw)MoBEVqWy7h5EOXN9 ziUw;op!7*z^C5JTR+cjIEqp5WuFtO5zWXxpOxkE*(ksF%>J6>ieE0!Xb;jC zI_f?~fd2a-)yKcqwYnjZNX~`^+)_=F#8y*~>N2vts3$}d8jvj3Rw(OFEeYIh7o(eX jbvHu(-*w>sMWkzV%=hN*b@>%By4g8-EZCoSlvwyTPSL00 delta 1362 zcmY+DX;4#V6o$VGNfQ<&tO9lfnHEI$qPVc7f}>&pK@8L+7{H|gj`q|MW@qQblk=)?Gzfw6G9r)cRi$9>~e%kv3|52`z;#y z^DOh637SY0$WO`fS76i4z}z>a5O$YVkd|y*58>%PPMJErMx^?}dEtWN5CX;`$7XsZ z&YkNe@o4a}4p2eaVa;zJW!G4_vTRhp3a94+=HApBTFV<2W_FDVG=7MMLd%MQqGr~33$+qFr335QzrcmJ zGdLDdP1q(#Y1|4d7h3g)g-KIxFtULWgVuFZN6Q6iw7tn;np10Qg~-f$Ru6q{rwgz~ znu}Ar(qO|nV1L^Z7*pFtiq|NR+0s3@s%-_Y=ojDLEF86HAv~zYdbQ19_q#Sld*DJk_o79;uhG105k6RS)=|9Z~S@ z7y!>yNZvW6nhvtTU|Slh6mF1)pIj+%0G>Ar3CeS=3;}uXWvBQ-~$Dk$qdpnicI6ReleA^ zzTjo|B7?0`l5;T_3@znu8_N$?Wn{UBBewsnH3e(~ePyA|CAwI)Vl=~>^Xlzz&YD%gOSCfkL1bHcM6%D2bxQLli>#VFMXWU zlms*)YDCu{l!u1M-|rU_maFT)_BbQF9jZc4BxxXl{~&5aS9s_hDP&g_Pd(&HN(xf? z{>c8^g0@r`?JM$f<1+h<>w7wFXn(~=xO-@~B)KBU1Z<4xUOOW*)AobxGy+d1$Pk%K zHr~0h=2d*tw(9EY1e2+ri7xEp7}xxdPt?3{uGtNs%mLOB;0QVl0p3#w3?|z`nOf5X z^korL>}eywoSU6JE#9jB<$h$y(2h`*QW?Xa%nKZP07@H9aEkWgZZmj15-&33j+(=3 z@keab<`_={22;%{e$}G&nvY}7a?%LX^i)&aRfA8?flmXGt4&fNO8h}52h@kkq5WaO J_4}w-{{_mMq00aO diff --git a/assets/hbm/textures/models/alpha.png b/assets/hbm/textures/models/alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8df7ee1c9d3c19ea4f37c77577454e723d64c9 GIT binary patch literal 1479 zcmV;&1vvVNP)+;D2^nm9GU;;ii z0v>^nvx2{%B;fps1hjzHe7E57ff3NU^KrhK^A-QdxZuMgz_sfv>|Mpb;2sI{`V<1( zj_bVxANK+Ne7io!`UC$o&Rz-zb4kxAW;838?k@xDLR8&-rZk8T^DdB%sIH0UmUyyZ}F; zB;b5|b^&h5IUz=UPtJMnrK0@gUYmXMG9=k<03Jd(I;!57sY_poOYj;|)5 z)y_KbdavNQ;OWlK_pcUwQ+S>BIy9^NSh_Aocv?k4!1e^~_VEpfTW$IkO&z`6$fa0KiL zUaLKWcSSFVi0~h7*FV+=}HVhuigtA4-89@W2v$fX;e73mwk+Ec8d* zBjNCD0$Ram`kqJG44R3kf!1dO-4A%O4yZ}oxUNZD-SrSSEOa>Bx#%(I*zp7Iz@MH1 zTO@96sG-h|1<&zz?ZTaV{}FdGo)Q6D!Mk4X3Lf|Oh=38x!ly)x^zXYzz*_LC_Ogo4 zGMC$2L;wR1uo3bDJqxmSZG)}g<35wQ*(gh=Ijr#+yaMNE@q5GV_ja2I^?-MF){U~9 zujf`5r0CAiA_ryIPjbCm3iN_^EiY`X_IjP>)OtMU_Gq3Lxqn-m-wd@lyEr)H-K%Q* z<_6`?*CcN2{sH&2;An`SEe0i92*|)clDG;!GdBuecaL{A@;Y+c)c~#+b1_{@z*_KY zW_eNZ`C5zLL5NZCvEv1JtW1He;I-;MDs~+H9L|}^8BpfG&H@Wb-AjOzw>{w1+~_P% zon7YYxTr`Fpeyum|`S ziOW^G=II$MJ3ak52G6-a4_3F-fExJTmlpx}j51_huCtz3r^hPqME@t}Jx`UQ5zq@>!(RnXP3W+@W6)ahozzwEBbI*@!O>V883Aj+XVpG?dBFs@&{u%E^L)?$ z4;Q>izR%)t1Z)M*z&YF|)0_|9P>Mb!3bvqv%^ci@|5UWkEm> z_*$RWk(M(zDpA$h4OsemH|dSv*LmSW==2cK13oi1**HseKJU0XyddZRZ+}_eYu?Wi zx0isd04n&b=+$ywr#hLSnO|05nF7Ti6TaGa?K~6k$lPQ_FMDgl<|cD=JmPY*dv$s& zmHE|JDsg)VsDZC3y$pOd$z{R9!weNVwXjzs^-$=v5YP(#V$ROkxIw1-YYp!4an_>8 zK0!aDDsg)Vh~ts5(K%kW>$=+-{%&l=p|7^~D4(;-&NBf$`d*8klE8UiGdB#_O>sGO zwAD39+^qz-R+ot!SM9m*Wk!czS*yxpq2tWWF5sB}B;d1F$Ca2vpLgDkvU!3Nt&d%w h7ESIdyX3qce*t^Cp@q(R5FG#j002ovPDHLkV1iHc^jrV{ literal 0 HcmV?d00001 diff --git a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index c8e2082aa..e20c284e9 100644 --- a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -173,8 +173,10 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk { //super.onUpdate(); - if(!worldObj.isRemote && !TileEntityMachineRadar.allMissiles.contains(this)) + if(!worldObj.isRemote) { + TileEntityMachineRadar.allMissiles.remove(this); TileEntityMachineRadar.allMissiles.add(this); + } //if(!worldObj.loadedEntityList.contains(this)) // worldObj.loadedEntityList.add(this); diff --git a/com/hbm/entity/missile/EntityMissileNuclear.java b/com/hbm/entity/missile/EntityMissileNuclear.java index 92039622a..20e61f992 100644 --- a/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/com/hbm/entity/missile/EntityMissileNuclear.java @@ -36,9 +36,9 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { this.worldObj.spawnEntityInWorld(entity); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000); + EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 300); entity2.posX = this.posX; - entity2.posY = this.posY - 9; + entity2.posY = this.posY/* - 9*/; entity2.posZ = this.posZ; this.worldObj.spawnEntityInWorld(entity2); } diff --git a/com/hbm/inventory/gui/GUIMachineRadar.java b/com/hbm/inventory/gui/GUIMachineRadar.java index 0fdef150d..1c74bca59 100644 --- a/com/hbm/inventory/gui/GUIMachineRadar.java +++ b/com/hbm/inventory/gui/GUIMachineRadar.java @@ -6,6 +6,7 @@ import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerGenerator; import com.hbm.inventory.container.ContainerMachineRadar; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityMachineGenerator; import com.hbm.tileentity.machine.TileEntityMachineRadar; diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index 24146ea03..ae2cfae39 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -354,7 +354,7 @@ public class HbmWorldGen implements IWorldGenerator { } } - if (rand.nextInt(15) == 0) { + if (rand.nextInt(25) == 0) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(25); int randPosZ = j + rand.nextInt(16); diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 3c1616d4c..549a59371 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -59,6 +59,8 @@ public class PacketDispatcher { wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); //Siren packet for looped sounds wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); + //Siren packet for looped sounds + wrapper.registerMessage(TERadarDestructorPacket.Handler.class, TERadarDestructorPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/packet/TERadarDestructorPacket.java b/com/hbm/packet/TERadarDestructorPacket.java new file mode 100644 index 000000000..e70de5128 --- /dev/null +++ b/com/hbm/packet/TERadarDestructorPacket.java @@ -0,0 +1,64 @@ +package com.hbm.packet; + +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.conductor.TileEntityPylonRedWire; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TERadarDestructorPacket implements IMessage { + + int x; + int y; + int z; + + public TERadarDestructorPacket() { + + } + + public TERadarDestructorPacket(int x, int y, int z) { + this.x = x; + this.y = y; + this.z = z; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + } + + public static class Handler implements IMessageHandler { + + @Override + @SideOnly(Side.CLIENT) + public IMessage onMessage(TERadarDestructorPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + try { + if (te != null && te instanceof TileEntityMachineRadar) { + + TileEntityMachineRadar radar = (TileEntityMachineRadar) te; + radar.nearbyMissiles.clear(); + } + } catch (Exception x) { + } + return null; + } + } +} diff --git a/com/hbm/packet/TERadarPacket.java b/com/hbm/packet/TERadarPacket.java index 50ec64f96..3e364cdce 100644 --- a/com/hbm/packet/TERadarPacket.java +++ b/com/hbm/packet/TERadarPacket.java @@ -1,11 +1,14 @@ package com.hbm.packet; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.conductor.TileEntityPylonRedWire; import com.hbm.tileentity.machine.TileEntityMachineRadar; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraft.tileentity.TileEntity; @@ -55,6 +58,7 @@ public class TERadarPacket implements IMessage { public static class Handler implements IMessageHandler { @Override + @SideOnly(Side.CLIENT) public IMessage onMessage(TERadarPacket m, MessageContext ctx) { TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); @@ -62,7 +66,7 @@ public class TERadarPacket implements IMessage { if (te != null && te instanceof TileEntityMachineRadar) { TileEntityMachineRadar radar = (TileEntityMachineRadar) te; - radar.nearbyMissiles.add(new int[]{m.x, m.y, m.z}); + radar.nearbyMissiles.add(new int[]{m.conX, m.conY, m.conZ}); } } catch (Exception x) { } diff --git a/com/hbm/render/entity/RenderCloudFleija.java b/com/hbm/render/entity/RenderCloudFleija.java index 9e0d6e90d..ec29037f7 100644 --- a/com/hbm/render/entity/RenderCloudFleija.java +++ b/com/hbm/render/entity/RenderCloudFleija.java @@ -35,11 +35,7 @@ public class RenderCloudFleija extends Render { GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); - //if(cloud.age < 150) - { - //GL11.glTranslatef(0.0F, -60F + ((p_76986_1_.age - 100) * 60 / 50), 0.0F); - GL11.glTranslatef(0.0F, 0.0F, 0.0F); - } + GL11.glScalef(cloud.age, cloud.age, cloud.age); bindTexture(blastTexture); diff --git a/com/hbm/render/entity/RenderSmallNukeMK3.java b/com/hbm/render/entity/RenderSmallNukeMK3.java new file mode 100644 index 000000000..bd2217eac --- /dev/null +++ b/com/hbm/render/entity/RenderSmallNukeMK3.java @@ -0,0 +1,86 @@ +package com.hbm.render.entity; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.effect.EntityCloudFleijaRainbow; +import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderSmallNukeMK3 extends Render { + + private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/NukeCloudSmall.obj"); + private IModelCustom blastModel; + private ResourceLocation blastTexture; + private static final ResourceLocation ringModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Ring.obj"); + private IModelCustom ringModel; + private ResourceLocation ringTexture; + private static final ResourceLocation ringBigModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/RingBig.obj"); + private IModelCustom ringBigModel; + private ResourceLocation ringBigTexture; + public float scale = 0; + public float ring = 0; + + public RenderSmallNukeMK3() { + blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); + blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/NukeCloudFire.png"); + ringModel = AdvancedModelLoader.loadModel(ringModelRL); + ringTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); + ringBigModel = AdvancedModelLoader.loadModel(ringBigModelRL); + ringBigTexture = new ResourceLocation(RefStrings.MODID, "textures/models/Ring2.png"); + scale = 0; + ring = 0; + } + + @Override + public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + render((EntityNukeCloudSmall)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + public void render(EntityNukeCloudSmall cloud, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + GL11.glColor4f(0.2F, 0.2F, 0.2F, 0.9F); + + GL11.glScalef(0.5F, 0.5F, 0.5F); + //ResourceManager.sphere_ruv.renderAll(); + GL11.glScalef(1/0.5F, 1/0.5F, 1/0.5F); + + int a = cloud.age; + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_DST_COLOR); + + GL11.glScalef(a, a, a); + ringModel.renderAll(); + GL11.glScalef(2, 2, 2); + ResourceManager.sphere_ruv.renderAll(); + ResourceManager.sphere_iuv.renderAll(); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/com/hbm/tileentity/machine/TileEntityMachineRadar.java index 47d850250..dd07ed84d 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineRadar.java +++ b/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -6,8 +6,10 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.interfaces.IConsumer; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TERadarDestructorPacket; import com.hbm.packet.TERadarPacket; import cpw.mods.fml.relauncher.Side; @@ -45,13 +47,14 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { @Override public void updateEntity() { - - nearbyMissiles.clear(); + + if(!worldObj.isRemote) + nearbyMissiles.clear(); if(power > 0) { - allocateMissiles(); if(!worldObj.isRemote) { + allocateMissiles(); sendMissileData(); } @@ -68,14 +71,28 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { private void allocateMissiles() { - for(Object e : allMissiles) { - //for(Object e : worldObj.loadedEntityList) { + nearbyMissiles.clear(); + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - range, 0, zCoord + 0.5 - range, xCoord + 0.5 + range, 5000, zCoord + 0.5 + range)); + + for(Entity e : list) { + /*if(e instanceof EntityMissileBaseAdvanced) { + EntityMissileBaseAdvanced mis = (EntityMissileBaseAdvanced)e; + nearbyMissiles.add(new int[] { (int)mis.posX, (int)mis.posZ, mis.getMissileType() }); + }*/ + + if(!(e instanceof EntityMissileBaseAdvanced) && e.width * e.width * e.height >= 0.5D && e.posY >= yCoord + 30) { + nearbyMissiles.add(new int[] { (int)e.posX, (int)e.posZ, 5 }); + } + } + + for(Entity e : allMissiles) { if(e instanceof EntityMissileBaseAdvanced) { - EntityMissileBaseAdvanced m = (EntityMissileBaseAdvanced)e; - - if(!m.isDead && m.posX < xCoord + range && m.posX > xCoord - range && - m.posZ < zCoord + range && m.posZ > zCoord - range) - this.nearbyMissiles.add(new int[] {(int)m.posX, (int)m.posZ, m.getMissileType()}); + if(e.posX < xCoord + range && e.posX > xCoord - range && + e.posZ < zCoord + range && e.posZ > zCoord - range) { + EntityMissileBaseAdvanced mis = (EntityMissileBaseAdvanced)e; + nearbyMissiles.add(new int[] { (int)mis.posX, (int)mis.posZ, mis.getMissileType() }); + } } } } @@ -106,6 +123,8 @@ public class TileEntityMachineRadar extends TileEntity implements IConsumer { private void sendMissileData() { + PacketDispatcher.wrapper.sendToAll(new TERadarDestructorPacket(xCoord, yCoord, zCoord)); + for(int[] e : this.nearbyMissiles) { PacketDispatcher.wrapper.sendToAll(new TERadarPacket(xCoord, yCoord, zCoord, e[0], e[1], e[2])); }