From 380c863ef35adbff171c886903c255e66b62dbdb Mon Sep 17 00:00:00 2001 From: HbmMods Date: Thu, 2 Jun 2016 20:04:48 +0200 Subject: [PATCH] 1.0.19 VI --- assets/hbm/lang/de_DE.lang | 3 +- assets/hbm/lang/en_US.lang | 3 +- .../textures/blocks/transmutator_bottom.png | Bin 0 -> 437 bytes .../hbm/textures/blocks/transmutator_side.png | Bin 0 -> 542 bytes .../hbm/textures/blocks/transmutator_top.png | Bin 0 -> 404 bytes assets/hbm/textures/items/detonator.png | Bin 0 -> 307 bytes .../hbm/textures/items/euphemium_stopper.png | Bin 293 -> 273 bytes .../hbm/textures/items/schrabidium_hammer.png | Bin 324 -> 318 bytes com/hbm/blocks/BlockCrashedBomb.java | 20 ++- com/hbm/blocks/BombFlameWar.java | 10 +- com/hbm/blocks/BombFloat.java | 10 +- com/hbm/blocks/BombMulti.java | 22 ++- com/hbm/blocks/BombThermo.java | 19 ++- com/hbm/blocks/DetCord.java | 10 +- com/hbm/blocks/Guide.java | 1 + com/hbm/blocks/LaunchPad.java | 158 +++++++++++++++++- com/hbm/blocks/MachineGenerator.java | 2 +- .../MachineSchrabidiumTransmutator.java | 19 +++ com/hbm/blocks/NukeBoy.java | 17 +- com/hbm/blocks/NukeFleija.java | 17 +- com/hbm/blocks/NukeGadget.java | 17 +- com/hbm/blocks/NukeMan.java | 17 +- com/hbm/blocks/NukeMike.java | 25 ++- com/hbm/blocks/NukePrototype.java | 17 +- com/hbm/blocks/NukeTsar.java | 25 ++- com/hbm/blocks/TileEntityMachineBattery.java | 4 +- com/hbm/blocks/YellowBarrel.java | 2 +- com/hbm/entity/EntityGrenadePoison.java | 2 +- com/hbm/explosion/ExplosionNukeGeneric.java | 122 ++++++++++++++ com/hbm/interfaces/IBomb.java | 9 + com/hbm/items/ItemCapacitor.java | 11 ++ com/hbm/items/ItemDetonator.java | 83 +++++++++ com/hbm/items/ModItems.java | 6 +- com/hbm/lib/HbmChestContents.java | 2 + com/hbm/lib/Library.java | 131 ++++++++------- com/hbm/main/CraftingManager.java | 3 + 36 files changed, 700 insertions(+), 87 deletions(-) create mode 100644 assets/hbm/textures/blocks/transmutator_bottom.png create mode 100644 assets/hbm/textures/blocks/transmutator_side.png create mode 100644 assets/hbm/textures/blocks/transmutator_top.png create mode 100644 assets/hbm/textures/items/detonator.png create mode 100644 com/hbm/interfaces/IBomb.java create mode 100644 com/hbm/items/ItemDetonator.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index c7e09a639..60a330866 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -640,4 +640,5 @@ item.schrabidium_hammer.name=Schrabidiumhammer item.euphemium_stopper.name=Stopper item.matchstick.name=Streichholz -item.redcoil_capacitor.name=Rotspulenkondensator \ No newline at end of file +item.redcoil_capacitor.name=Rotspulenkondensator +item.detonator.name=Fernzünder \ No newline at end of file diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 6f0e2f152..afab3fee3 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -641,4 +641,5 @@ item.schrabidium_hammer.name=Schrabidium Hammer item.euphemium_stopper.name=Stopper item.matchstick.name=Matchstick -item.redcoil_capacitor.name=Redcoil Capacitor \ No newline at end of file +item.redcoil_capacitor.name=Redcoil Capacitor +item.detonator.name=Detonator \ No newline at end of file diff --git a/assets/hbm/textures/blocks/transmutator_bottom.png b/assets/hbm/textures/blocks/transmutator_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..03e57ddf74f7a2798bc5f46c4715086276c5875c GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJK%5{dY+ZNicBm#tOw*ipOgIg%YF*u zg?bt7)z5sBYwvSESYI0JZW?WMomqs_;f^wAN8{F8a~W+|rY&JVqTpegAm?DE{9Uzg dO41#ZdhK^jk3!tHtOSNCgQu&X%Q~loCIBp_rx*YL literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/transmutator_side.png b/assets/hbm/textures/blocks/transmutator_side.png new file mode 100644 index 0000000000000000000000000000000000000000..daa0d5a089dc4987421cd42c6b768badf6a67af2 GIT binary patch literal 542 zcmV+(0^$9MP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;(#7eog=Y0gp*UK~y+TjgmP_15p%(uZoph;a(`Hm5u)( zE0{$j5X2P~D@6kz%oUUPY-?DwoTZN`(r}{z5vPmd81{ znN+-=QTl1V?s=h}s)@dv7DLX+>r$h=(V@86X>WDe+uf>eb$zY3|K`K22=CB8yk0NW z<#K6lglR%`;dV+s*V=-?AkTmi8nykm<)*8Ns)N1LLn|7MMj{cv-+wYF`#o~lCrAB4 zf3ynvIIyHMlF#Q0hr@wD0QZX#xgKx39BVlq5Zw=jLV7Cag1y_T9e~HZ)NF^)mC=GoyS`6KDXP=q1vV2SDMw*I4}}> zGbO@Qpq;5&I}YYM{D*vO6$kFY+6XWw`x)x&XiA|_aFX>85LhA7gcj%k1M(b?$5W{k g*`xyUuVGo%H*x+|@d%;kfdBvi07*qoM6N<$f=Z0+H~;_u literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/transmutator_top.png b/assets/hbm/textures/blocks/transmutator_top.png new file mode 100644 index 0000000000000000000000000000000000000000..fef40211654da9e90e11e59256f96e5fce654066 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJiogul%jf_&l5KbLo-(sxGS(qh=k4HpU$(yV9!8vo!SQv`qdN@AXmJn6ctW z?fvPgl|5FeNjBRw7U=(D3AkG-YZj;IF<+&O?SW+U#{1&y-j*dFn<@NYY3Ix%uZ}10 zjQfA@J!|)bl-t|n8Q4xU>NK?Xu-@R@(8#c~`>0pL6CMd$w?&eoe9Q&6|8iU@J*%3| z@X>(h&B2P;>5_gQLem(k_iPu9Xnp^GAy324%bSyG^VzK3e_o%pY~d{3-)s#^j7KbA vC0j67aO7Os&J)2f!L}&=V$jkZtL9zWa?Wp|)hS@;F)(<#`njxgN@xNA!o8h1 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/detonator.png b/assets/hbm/textures/items/detonator.png new file mode 100644 index 0000000000000000000000000000000000000000..d83e1640e0490f13ee40d04090f80e9b3fd7113d GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P@=>&q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&oalj&JU<&qo<2w zh=u>sNrqz03OsF=g4{fQHyqV=cs!R|V6J}le6@mO*Hu1wHO2T4xvq|XNf9y|b-bC* z?R>J=e`#IDAGXtfZhV$VmQ$LQHiglD>8sm~8M6+~_q%rMOVZQ3JeDSX2kMg#Y|H%; z5w7>PdQqW^_UDIz9F3=c@5^}CXfe6bqv6`Df`t7i98_G*j(yo=@pGEg7o$hUl24wl z0dN}3G3LIQc2Dr%}il|c|NkoUQ^vb=LqLwB;glLSGI47?)s+b+)~ oA$KxkmoJkUyL_3h($07*qoM6N<$f*om4aR2}S delta 206 zcmV;<05SiO0;K|wJPN=701m(bYSxJfkwzzfqe(;GwFaQ7m diff --git a/assets/hbm/textures/items/schrabidium_hammer.png b/assets/hbm/textures/items/schrabidium_hammer.png index 6fdd9a88e08bee53d89b550f025bb668e8937cba..88fa578d3a29076ec61ce6d64d2877b5c188967f 100644 GIT binary patch delta 231 zcmVWc6$S}~?-?!gsi=d*Ht&alulk+uu6DM2GKOD&=QW3rO8SGMX hGN?WoQ0>VpOkX1lq~&<)ob3Pr002ovPDHLkV1n{bXt4kQ delta 237 zcmVlE4JPN=701m(bYSxJfkwzzf!bwCyR5(wakueU!FbqX4R%X_&Ff;TH zES#V_NIeNh=wW(>9?9fe`IXbAN#ILXtknP6aiywZP>a75jCWNF$Xu31B}0Qj)I2}gylKq%w7a#0o$>2It0`@ nQ&~VuXNtxI(9)Soj3$vUP0S!%LciV700000NkvXXu0mjfI3#MI diff --git a/com/hbm/blocks/BlockCrashedBomb.java b/com/hbm/blocks/BlockCrashedBomb.java index 5e9ad6d83..4879d7ec3 100644 --- a/com/hbm/blocks/BlockCrashedBomb.java +++ b/com/hbm/blocks/BlockCrashedBomb.java @@ -5,6 +5,8 @@ import java.util.Map; import java.util.Random; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.explosion.ExplosionParticleB; +import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -22,7 +24,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class BlockCrashedBomb extends BlockContainer { +public class BlockCrashedBomb extends BlockContainer implements IBomb { protected BlockCrashedBomb(Material p_i45386_1_) { super(p_i45386_1_); @@ -75,4 +77,20 @@ public class BlockCrashedBomb extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } } + + public void explode(World world, int x, int y, int z) { + if (!world.isRemote) + { + EntityNukeExplosionAdvanced entity0 = new EntityNukeExplosionAdvanced(world); + entity0.posX = x; + entity0.posY = y; + entity0.posZ = z; + entity0.destructionRange = 35; + entity0.speed = 25; + entity0.coefficient = 10.0F; + + world.spawnEntityInWorld(entity0); + ExplosionParticleB.spawnMush(world, x, y - 3, z); + } + } } diff --git a/com/hbm/blocks/BombFlameWar.java b/com/hbm/blocks/BombFlameWar.java index ec2789995..a42f6a8b1 100644 --- a/com/hbm/blocks/BombFlameWar.java +++ b/com/hbm/blocks/BombFlameWar.java @@ -1,12 +1,14 @@ package com.hbm.blocks; import com.hbm.explosion.ExplosionChaos; +import com.hbm.interfaces.IBomb; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.world.World; -public class BombFlameWar extends Block { +public class BombFlameWar extends Block implements IBomb { public World worldObj; @@ -26,4 +28,10 @@ public class BombFlameWar extends Block { } } + public void explode(World world, int x, int y, int z) { + ExplosionChaos.explode(world, x, y, z, 15); + ExplosionChaos.spawnExplosion(world, x, y, z, 75); + ExplosionChaos.flameDeath(world, x, y, z, 100); + } + } diff --git a/com/hbm/blocks/BombFloat.java b/com/hbm/blocks/BombFloat.java index 15523d024..4541e5907 100644 --- a/com/hbm/blocks/BombFloat.java +++ b/com/hbm/blocks/BombFloat.java @@ -1,6 +1,8 @@ package com.hbm.blocks; import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionThermo; +import com.hbm.interfaces.IBomb; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -12,7 +14,7 @@ import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BombFloat extends Block { +public class BombFloat extends Block implements IBomb { public World worldObj; @@ -48,4 +50,10 @@ public class BombFloat extends Block { } } + public void explode(World world, int x, int y, int z) { + world.setBlock(x, y, z, Blocks.air); + ExplosionChaos.floater(world, x, y, z, 15, 50); + ExplosionChaos.move(world, x, y, z, 15, 0, 50, 0); + } + } diff --git a/com/hbm/blocks/BombMulti.java b/com/hbm/blocks/BombMulti.java index 3272c4afb..45e08895e 100644 --- a/com/hbm/blocks/BombMulti.java +++ b/com/hbm/blocks/BombMulti.java @@ -10,21 +10,24 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -public class BombMulti extends BlockContainer { +public class BombMulti extends BlockContainer implements IBomb { public TileEntityBombMulti tetn = new TileEntityBombMulti(); @@ -244,7 +247,7 @@ public class BombMulti extends BlockContainer { if(this.poisonRadius > 0) { - ExplosionNukeGeneric.waste(world, x, y, z, this.poisonRadius); + ExplosionNukeGeneric.wasteNoSchrab(world, x, y, z, this.poisonRadius); } if(this.gasCloud > 0) @@ -306,5 +309,20 @@ public class BombMulti extends BlockContainer { float f = 0.0625F; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + float f = 0.0625F; + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 8*f, 1.0F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + public void explode(World world, int x, int y, int z) { + TileEntityBombMulti entity = (TileEntityBombMulti) world.getTileEntity(x, y, z); + if(/*entity.getExplosionType() != 0*/entity.isLoaded()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + igniteTestBomb(world, x, y, z); + } + } } \ No newline at end of file diff --git a/com/hbm/blocks/BombThermo.java b/com/hbm/blocks/BombThermo.java index 166bd2d29..7875bd0ba 100644 --- a/com/hbm/blocks/BombThermo.java +++ b/com/hbm/blocks/BombThermo.java @@ -3,6 +3,7 @@ package com.hbm.blocks; import java.util.Random; import com.hbm.explosion.ExplosionThermo; +import com.hbm.interfaces.IBomb; import com.hbm.lib.RefStrings; import cpw.mods.fml.relauncher.Side; @@ -15,7 +16,7 @@ import net.minecraft.item.Item; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BombThermo extends Block { +public class BombThermo extends Block implements IBomb { private World worldObj; @@ -73,4 +74,20 @@ public class BombThermo extends Block { } } + public void explode(World world, int x, int y, int z) { + world.setBlock(x, y, z, Blocks.air); + if(this == ModBlocks.therm_endo) + { + ExplosionThermo.freeze(world, x, y, z, 15); + ExplosionThermo.freezer(world, x, y, z, 20); + } + + if(this == ModBlocks.therm_exo) + { + ExplosionThermo.scorch(world, x, y, z, 15); + ExplosionThermo.setEntitiesOnFire(world, x, y, z, 20); + } + + world.createExplosion(null, x, y, z, 5.0F, true); + } } diff --git a/com/hbm/blocks/DetCord.java b/com/hbm/blocks/DetCord.java index e88c7b2f7..c4055e61c 100644 --- a/com/hbm/blocks/DetCord.java +++ b/com/hbm/blocks/DetCord.java @@ -2,13 +2,17 @@ package com.hbm.blocks; import java.util.Random; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.interfaces.IBomb; + import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.world.Explosion; import net.minecraft.world.World; -public class DetCord extends Block { +public class DetCord extends Block implements IBomb { protected DetCord(Material p_i45394_1_) { super(p_i45394_1_); @@ -38,4 +42,8 @@ public class DetCord extends Block { return null; } + public void explode(World world, int x, int y, int z) { + world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); + } + } diff --git a/com/hbm/blocks/Guide.java b/com/hbm/blocks/Guide.java index b29ff1649..c814ef912 100644 --- a/com/hbm/blocks/Guide.java +++ b/com/hbm/blocks/Guide.java @@ -194,6 +194,7 @@ public class Guide extends Block { pages2.appendTag(new NBTTagString(Library.book214)); pages2.appendTag(new NBTTagString(Library.book215)); pages2.appendTag(new NBTTagString(Library.book216)); + pages2.appendTag(new NBTTagString(Library.book217)); book2.stackTagCompound.setTag("pages", pages2); player.inventory.addItemStackToInventory(book2); diff --git a/com/hbm/blocks/LaunchPad.java b/com/hbm/blocks/LaunchPad.java index 7e5845661..b4874f58c 100644 --- a/com/hbm/blocks/LaunchPad.java +++ b/com/hbm/blocks/LaunchPad.java @@ -19,6 +19,7 @@ import com.hbm.entity.EntityMissileMirv; import com.hbm.entity.EntityMissileNuclear; import com.hbm.entity.EntityMissileRain; import com.hbm.entity.EntityMissileStrong; +import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -40,7 +41,7 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class LaunchPad extends BlockContainer { +public class LaunchPad extends BlockContainer implements IBomb { public TileEntityLaunchPad tetn = new TileEntityLaunchPad(); public static boolean keepInventory = false; @@ -408,5 +409,160 @@ public class LaunchPad extends BlockContainer { { return Item.getItemFromBlock(ModBlocks.launch_pad); } + + public void explode(World p_149695_1_, int x, int y, int z) + { + TileEntityLaunchPad entity = (TileEntityLaunchPad) p_149695_1_.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.slots[1] != null && entity.slots[1].getItem() == ModItems.designator && entity.slots[1].stackTagCompound != null) + { + int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord"); + int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord"); + + if(xCoord == entity.xCoord && zCoord == entity.zCoord) + { + xCoord += 1; + } + + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_generic && entity.power >= 75000) + { + EntityMissileGeneric missile = new EntityMissileGeneric(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_anti_ballistic && entity.power >= 75000) + { + EntityMissileAntiBallistic missile = new EntityMissileAntiBallistic(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary && entity.power >= 75000) + { + EntityMissileIncendiary missile = new EntityMissileIncendiary(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_cluster && entity.power >= 75000) + { + EntityMissileCluster missile = new EntityMissileCluster(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster && entity.power >= 75000) + { + EntityMissileBunkerBuster missile = new EntityMissileBunkerBuster(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_strong && entity.power >= 75000) + { + EntityMissileStrong missile = new EntityMissileStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary_strong && entity.power >= 75000) + { + EntityMissileIncendiaryStrong missile = new EntityMissileIncendiaryStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_cluster_strong && entity.power >= 75000) + { + EntityMissileClusterStrong missile = new EntityMissileClusterStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster_strong && entity.power >= 75000) + { + EntityMissileBusterStrong missile = new EntityMissileBusterStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_burst && entity.power >= 75000) + { + EntityMissileBurst missile = new EntityMissileBurst(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_inferno && entity.power >= 75000) + { + EntityMissileInferno missile = new EntityMissileInferno(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_rain && entity.power >= 75000) + { + EntityMissileRain missile = new EntityMissileRain(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_drill && entity.power >= 75000) + { + EntityMissileDrill missile = new EntityMissileDrill(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear && entity.power >= 75000) + { + EntityMissileNuclear missile = new EntityMissileNuclear(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_endo && entity.power >= 75000) + { + EntityMissileEndo missile = new EntityMissileEndo(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_exo && entity.power >= 75000) + { + EntityMissileExo missile = new EntityMissileExo(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear_cluster && entity.power >= 75000) + { + EntityMissileMirv missile = new EntityMissileMirv(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F); + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + } + } + } + } } diff --git a/com/hbm/blocks/MachineGenerator.java b/com/hbm/blocks/MachineGenerator.java index 37b04d5b8..229b65e3e 100644 --- a/com/hbm/blocks/MachineGenerator.java +++ b/com/hbm/blocks/MachineGenerator.java @@ -141,7 +141,7 @@ public class MachineGenerator extends BlockContainer { if(entity != null && entity.isLoaded) { p_149723_1_.createExplosion(null, p_149723_2_, p_149723_3_, p_149723_4_, 18.0F, true); - ExplosionNukeGeneric.waste(p_149723_1_, p_149723_2_, p_149723_3_, p_149723_4_, 35); + ExplosionNukeGeneric.wasteNoSchrab(p_149723_1_, p_149723_2_, p_149723_3_, p_149723_4_, 35); p_149723_1_.setBlock(p_149723_2_, p_149723_3_, p_149723_4_, Blocks.flowing_lava); } } diff --git a/com/hbm/blocks/MachineSchrabidiumTransmutator.java b/com/hbm/blocks/MachineSchrabidiumTransmutator.java index b77b9eaed..33843808b 100644 --- a/com/hbm/blocks/MachineSchrabidiumTransmutator.java +++ b/com/hbm/blocks/MachineSchrabidiumTransmutator.java @@ -26,6 +26,25 @@ public class MachineSchrabidiumTransmutator extends BlockContainer { private final Random field_149933_a = new Random(); private Random rand; private static boolean keepInventory; + + @SideOnly(Side.CLIENT) + //private IIcon iconFront; + private IIcon iconTop; + private IIcon iconBottom; + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_top")); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_bottom")); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":transmutator_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } protected MachineSchrabidiumTransmutator(Material p_i45386_1_) { super(p_i45386_1_); diff --git a/com/hbm/blocks/NukeBoy.java b/com/hbm/blocks/NukeBoy.java index df5716acf..20fbcca0c 100644 --- a/com/hbm/blocks/NukeBoy.java +++ b/com/hbm/blocks/NukeBoy.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.entity.EntityNukeCloudSmall; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -20,7 +21,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeBoy extends BlockContainer { +public class NukeBoy extends BlockContainer implements IBomb { public TileEntityNukeBoy tetn = new TileEntityNukeBoy(); @@ -209,4 +210,18 @@ public class NukeBoy extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } } + + public void explode(World world, int x, int y, int z) { + TileEntityNukeBoy entity = (TileEntityNukeBoy) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z); + } + } + } } diff --git a/com/hbm/blocks/NukeFleija.java b/com/hbm/blocks/NukeFleija.java index b196a8121..b7013c9a1 100644 --- a/com/hbm/blocks/NukeFleija.java +++ b/com/hbm/blocks/NukeFleija.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Random; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -21,7 +22,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeFleija extends BlockContainer { +public class NukeFleija extends BlockContainer implements IBomb { public TileEntityNukeFleija tetn = new TileEntityNukeFleija(); @@ -190,4 +191,18 @@ public class NukeFleija extends BlockContainer { } } + public void explode(World world, int x, int y, int z) { + TileEntityNukeFleija entity = (TileEntityNukeFleija) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.fleijaRadius); + } + } + } + } diff --git a/com/hbm/blocks/NukeGadget.java b/com/hbm/blocks/NukeGadget.java index c0b51dbda..fe5f6ada3 100644 --- a/com/hbm/blocks/NukeGadget.java +++ b/com/hbm/blocks/NukeGadget.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.entity.EntityNukeCloudSmall; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -22,7 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeGadget extends BlockContainer { +public class NukeGadget extends BlockContainer implements IBomb { public TileEntityNukeGadget tetn = new TileEntityNukeGadget(); @@ -455,4 +456,18 @@ public class NukeGadget extends BlockContainer { world.setBlock(x, y + 1, z, Blocks.fire); } }*/ + + public void explode(World world, int x, int y, int z) { + TileEntityNukeGadget entity = (TileEntityNukeGadget) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z); + } + } + } } diff --git a/com/hbm/blocks/NukeMan.java b/com/hbm/blocks/NukeMan.java index d9c3e121c..d12367234 100644 --- a/com/hbm/blocks/NukeMan.java +++ b/com/hbm/blocks/NukeMan.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.entity.EntityNukeCloudSmall; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -22,7 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeMan extends BlockContainer { +public class NukeMan extends BlockContainer implements IBomb { public TileEntityNukeMan tetn = new TileEntityNukeMan(); @@ -454,4 +455,18 @@ public class NukeMan extends BlockContainer { world.setBlock(x, y + 1, z, Blocks.fire); } }*/ + + public void explode(World world, int x, int y, int z) { + TileEntityNukeMan entity = (TileEntityNukeMan) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z); + } + } + } } diff --git a/com/hbm/blocks/NukeMike.java b/com/hbm/blocks/NukeMike.java index a0d0ccf66..c7bf3d360 100644 --- a/com/hbm/blocks/NukeMike.java +++ b/com/hbm/blocks/NukeMike.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.entity.EntityNukeCloudBig; import com.hbm.entity.EntityNukeCloudSmall; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -23,7 +24,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeMike extends BlockContainer { +public class NukeMike extends BlockContainer implements IBomb { public TileEntityNukeMike tetn = new TileEntityNukeMike(); @@ -216,4 +217,26 @@ public class NukeMike extends BlockContainer { } } + public void explode(World world, int x, int y, int z) { + TileEntityNukeMike entity = (TileEntityNukeMike) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady() && !entity.isFilled()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.manRadius); + } + + if(entity.isFilled()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.mikeRadius); + } + } + } + } diff --git a/com/hbm/blocks/NukePrototype.java b/com/hbm/blocks/NukePrototype.java index 7f7a262be..33a09120e 100644 --- a/com/hbm/blocks/NukePrototype.java +++ b/com/hbm/blocks/NukePrototype.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Random; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; @@ -22,7 +23,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukePrototype extends BlockContainer { +public class NukePrototype extends BlockContainer implements IBomb { public TileEntityNukePrototype tetn = new TileEntityNukePrototype(); @@ -201,4 +202,18 @@ public class NukePrototype extends BlockContainer { } } + public void explode(World world, int x, int y, int z) { + TileEntityNukePrototype entity = (TileEntityNukePrototype) world.getTileEntity(x, y, z); + //if (world.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.prototypeRadius); + } + } + } + } diff --git a/com/hbm/blocks/NukeTsar.java b/com/hbm/blocks/NukeTsar.java index d7e6de8e6..a66706ab0 100644 --- a/com/hbm/blocks/NukeTsar.java +++ b/com/hbm/blocks/NukeTsar.java @@ -5,6 +5,7 @@ import java.util.Map; import java.util.Random; import com.hbm.entity.EntityNukeExplosionAdvanced; +import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -21,7 +22,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class NukeTsar extends BlockContainer { +public class NukeTsar extends BlockContainer implements IBomb { public TileEntityNukeTsar tetn = new TileEntityNukeTsar(); @@ -199,4 +200,26 @@ public class NukeTsar extends BlockContainer { } } + public void explode(World world, int x, int y, int z) { + TileEntityNukeTsar entity = (TileEntityNukeTsar) world.getTileEntity(x, y, z); + //if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) + { + if(entity.isReady() && !entity.isFilled()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.manRadius); + } + + if(entity.isFilled()) + { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + entity.clearSlots(); + world.setBlockToAir(x, y, z); + igniteTestBomb(world, x, y, z, MainRegistry.tsarRadius); + } + } + } + } diff --git a/com/hbm/blocks/TileEntityMachineBattery.java b/com/hbm/blocks/TileEntityMachineBattery.java index 5d7f14347..ac68d8c60 100644 --- a/com/hbm/blocks/TileEntityMachineBattery.java +++ b/com/hbm/blocks/TileEntityMachineBattery.java @@ -136,8 +136,9 @@ public class TileEntityMachineBattery extends TileEntity implements ISidedInvent public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - + this.power = nbt.getShort("power"); + this.conducts = nbt.getBoolean("conducts"); slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -155,6 +156,7 @@ public class TileEntityMachineBattery extends TileEntity implements ISidedInvent public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setShort("power", (short) power); + nbt.setBoolean("conducts", conducts); NBTTagList list = new NBTTagList(); for(int i = 0; i < slots.length; i++) diff --git a/com/hbm/blocks/YellowBarrel.java b/com/hbm/blocks/YellowBarrel.java index 623460634..7bd5ccda2 100644 --- a/com/hbm/blocks/YellowBarrel.java +++ b/com/hbm/blocks/YellowBarrel.java @@ -37,7 +37,7 @@ public class YellowBarrel extends BlockContainer { public void explode(World p_149695_1_, int x, int y, int z) { p_149695_1_.createExplosion(null, x, y, z, 18.0F, true); - ExplosionNukeGeneric.waste(p_149695_1_, x, y, z, 35); + ExplosionNukeGeneric.wasteNoSchrab(p_149695_1_, x, y, z, 35); } @Override diff --git a/com/hbm/entity/EntityGrenadePoison.java b/com/hbm/entity/EntityGrenadePoison.java index 3eaee4aa0..776581987 100644 --- a/com/hbm/entity/EntityGrenadePoison.java +++ b/com/hbm/entity/EntityGrenadePoison.java @@ -47,7 +47,7 @@ public class EntityGrenadePoison extends EntityThrowable { this.setDead(); this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, true); - ExplosionNukeGeneric.waste(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); + ExplosionNukeGeneric.wasteNoSchrab(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); } } diff --git a/com/hbm/explosion/ExplosionNukeGeneric.java b/com/hbm/explosion/ExplosionNukeGeneric.java index ff43fdcd0..b7ddcbe0d 100644 --- a/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/com/hbm/explosion/ExplosionNukeGeneric.java @@ -372,4 +372,126 @@ public class ExplosionNukeGeneric { } } } + + + + public static void wasteNoSchrab(World world, int x, int y, int z, int radius) + { + int r = radius; + int r2 = r*r; + int r22 = r2/2; + for (int xx = -r; xx < r; xx++) + { + int X = xx+x; + int XX = xx*xx; + for (int yy = -r; yy < r; yy++) + { + int Y = yy+y; + int YY = XX+yy*yy; + for (int zz = -r; zz < r; zz++) + { + int Z = zz+z; + int ZZ = YY+zz*zz; + if (ZZ