diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index e4286904f..8ae84866a 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -212,6 +212,7 @@ tile.flame_war.name=Flamewar aus der Box tile.float_bomb.name=Schwebebombe tile.therm_endo.name=Endothermische Bombe tile.therm_exo.name=Exothermische Bombe +tile.emp_bomb.name=EMP-Ladung tile.crashed_bomb.name=Blindgänger tile.boxcar.name=Güterwagon @@ -1057,6 +1058,7 @@ item.turret_rocket_ammo.name=Raketengeschütz 2x4 Munition item.turret_flamer_ammo.name=Flammenwerfergeschütz-Tanks item.turret_tau_ammo.name=Tauonengeschütz-Uranmunition item.turret_spitfire_ammo.name=AA-Geschoss +item.turret_cwis_ammo.name=CIWS 20mm Munitionstrommel item.clip_revolver_iron.name=Box voll Eisenkugeln item.clip_revolver.name=.357 Magnum Patronen diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 5fcbaf0bb..f7852e36f 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -199,6 +199,7 @@ tile.flame_war.name=Flame War in a Box tile.float_bomb.name=Levitation Bomb tile.therm_endo.name=Endothermic Bomb tile.therm_exo.name=Exothermic Bomb +tile.emp_bomb.name=EMP Device tile.crashed_bomb.name=Dud tile.boxcar.name=Boxcar @@ -1060,6 +1061,7 @@ item.turret_rocket_ammo.name=Rocket Turret 2x4 Ammunition item.turret_flamer_ammo.name=Flamer Turret Fuel Tanks item.turret_tau_ammo.name=Tau Turret Uranium Ammo item.turret_spitfire_ammo.name=AA-Shell +item.turret_cwis_ammo.name=CIWS 20mm Ammo Drum item.clip_revolver_iron.name=Box of Iron Rounds item.clip_revolver.name=Box of .357 Rounds diff --git a/assets/hbm/sounds/alarm/evacuate.ogg b/assets/hbm/sounds/alarm/voxEvacuate.ogg similarity index 100% rename from assets/hbm/sounds/alarm/evacuate.ogg rename to assets/hbm/sounds/alarm/voxEvacuate.ogg diff --git a/assets/hbm/textures/blocks/turret_cwis.png b/assets/hbm/textures/blocks/turret_cwis.png new file mode 100644 index 000000000..14cd0660e Binary files /dev/null and b/assets/hbm/textures/blocks/turret_cwis.png differ diff --git a/assets/hbm/textures/hazmat_custom.png b/assets/hbm/textures/hazmat_custom.png new file mode 100644 index 000000000..c0eca10e4 Binary files /dev/null and b/assets/hbm/textures/hazmat_custom.png differ diff --git a/assets/hbm/textures/hazmat_custom2.png b/assets/hbm/textures/hazmat_custom2.png new file mode 100644 index 000000000..049f1bae8 Binary files /dev/null and b/assets/hbm/textures/hazmat_custom2.png differ diff --git a/assets/hbm/textures/items/can_bepis.png b/assets/hbm/textures/items/can_bepis.png new file mode 100644 index 000000000..3534780e5 Binary files /dev/null and b/assets/hbm/textures/items/can_bepis.png differ diff --git a/assets/hbm/textures/items/turret_cwis_ammo.png b/assets/hbm/textures/items/turret_cwis_ammo.png new file mode 100644 index 000000000..77dd465d7 Binary files /dev/null and b/assets/hbm/textures/items/turret_cwis_ammo.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index f3bcce455..973be21c5 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -163,6 +163,7 @@ public class ModBlocks { public static Block float_bomb; public static Block therm_endo; public static Block therm_exo; + public static Block emp_bomb; public static Block det_cord; public static Block det_charge; public static Block red_barrel; @@ -624,6 +625,7 @@ public class ModBlocks { float_bomb = new BombFloat(Material.iron).setBlockName("float_bomb").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F); therm_endo = new BombThermo(Material.iron).setBlockName("therm_endo").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F); therm_exo = new BombThermo(Material.iron).setBlockName("therm_exo").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F); + emp_bomb = new BombFloat(Material.iron).setBlockName("emp_bomb").setCreativeTab(MainRegistry.tabNuke).setHardness(5.0F).setResistance(6000.0F); det_cord = new DetCord(Material.iron).setBlockName("det_cord").setCreativeTab(MainRegistry.tabNuke).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_cord"); det_charge = new DetCord(Material.iron).setBlockName("det_charge").setCreativeTab(MainRegistry.tabNuke).setHardness(0.1F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":det_charge"); red_barrel = new RedBarrel(Material.iron).setBlockName("red_barrel").setCreativeTab(MainRegistry.tabNuke).setHardness(0.5F).setResistance(2.5F); @@ -1007,6 +1009,7 @@ public class ModBlocks { GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName()); GameRegistry.registerBlock(therm_endo, therm_endo.getUnlocalizedName()); GameRegistry.registerBlock(therm_exo, therm_exo.getUnlocalizedName()); + GameRegistry.registerBlock(emp_bomb, emp_bomb.getUnlocalizedName()); //GameRegistry.registerBlock(rejuvinator, rejuvinator.getUnlocalizedName()); GameRegistry.registerBlock(det_cord, det_cord.getUnlocalizedName()); GameRegistry.registerBlock(det_charge, det_charge.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/BlockCrashedBomb.java b/com/hbm/blocks/bomb/BlockCrashedBomb.java index 5503b7aa5..214793e22 100644 --- a/com/hbm/blocks/bomb/BlockCrashedBomb.java +++ b/com/hbm/blocks/bomb/BlockCrashedBomb.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.explosion.ExplosionParticleB; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -75,19 +76,11 @@ public class BlockCrashedBomb extends BlockContainer implements IBomb { @Override public void explode(World world, int x, int y, int z) { - if (!world.isRemote) - { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(world); - entity0.posX = x; - entity0.posY = y; - entity0.posZ = z; - entity0.destructionRange = (int)(MainRegistry.fatmanRadius * 1.25); - entity0.speed = 25; - entity0.coefficient = 10.0F; - + if (!world.isRemote) { + world.setBlockToAir(x, y, z); - world.spawnEntityInWorld(entity0); - ExplosionParticleB.spawnMush(world, x, y - 3, z); + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, (int)(MainRegistry.fatmanRadius * 1.25), x + 0.5, y + 0.5, z + 0.5)); + ExplosionParticleB.spawnMush(world, x, y, z); } } } diff --git a/com/hbm/blocks/bomb/BombFloat.java b/com/hbm/blocks/bomb/BombFloat.java index fbd0a1768..d108b8af0 100644 --- a/com/hbm/blocks/bomb/BombFloat.java +++ b/com/hbm/blocks/bomb/BombFloat.java @@ -1,6 +1,9 @@ package com.hbm.blocks.bomb; +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.interfaces.IBomb; import com.hbm.lib.RefStrings; @@ -27,8 +30,14 @@ public class BombFloat extends Block implements IBomb { @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":bomb_float_top"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":bomb_float"); + if(this == ModBlocks.float_bomb) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":bomb_float_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":bomb_float"); + } + if(this == ModBlocks.emp_bomb) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":bomb_emp_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":bomb_emp_side"); + } } @Override @@ -43,17 +52,27 @@ public class BombFloat extends Block implements IBomb { this.worldObj = p_149695_1_; if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) { - p_149695_1_.setBlock(x, y, z, Blocks.air); - ExplosionChaos.floater(p_149695_1_, x, y, z, 15, 50); - ExplosionChaos.move(p_149695_1_, x, y, z, 15, 0, 50, 0); + explode(p_149695_1_, x, y, z); } } @Override 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); + if(!world.isRemote) { + world.setBlock(x, y, z, Blocks.air); + if(this == ModBlocks.float_bomb) { + ExplosionChaos.floater(world, x, y, z, 15, 50); + ExplosionChaos.move(world, x, y, z, 15, 0, 50, 0); + } + if(this == ModBlocks.emp_bomb) { + ExplosionNukeGeneric.empBlast(world, x, y, z, 50); + EntityEMPBlast wave = new EntityEMPBlast(world, 50); + wave.posX = x + 0.5; + wave.posY = y + 0.5; + wave.posZ = z + 0.5; + world.spawnEntityInWorld(wave); + } + } } } diff --git a/com/hbm/blocks/bomb/NukeBoy.java b/com/hbm/blocks/bomb/NukeBoy.java index 775a68d3f..e83abbe6e 100644 --- a/com/hbm/blocks/bomb/NukeBoy.java +++ b/com/hbm/blocks/bomb/NukeBoy.java @@ -6,6 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityNukeCloudNoShroom; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeBoy; @@ -145,22 +146,15 @@ public class NukeBoy extends BlockContainer implements IBomb { * * world.spawnEntityInWorld(entity); */ - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); - entity.posX = x; - entity.posY = y; - entity.posZ = z; - entity.destructionRange = MainRegistry.boyRadius; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - world.spawnEntityInWorld(entity); + + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, MainRegistry.boyRadius, x + 0.5, y + 0.5, z + 0.5)); // ExplosionNukeAdvanced.mush(world, x, y, z); if (MainRegistry.enableNukeClouds) { EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); entity2.posX = x; - entity2.posY = y - 11; + entity2.posY = y; entity2.posZ = z; world.spawnEntityInWorld(entity2); } else { diff --git a/com/hbm/blocks/bomb/NukeGadget.java b/com/hbm/blocks/bomb/NukeGadget.java index c262ee2cf..32427a361 100644 --- a/com/hbm/blocks/bomb/NukeGadget.java +++ b/com/hbm/blocks/bomb/NukeGadget.java @@ -9,6 +9,7 @@ import com.hbm.entity.effect.EntityNukeCloudNoShroom; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeGadget; @@ -159,22 +160,14 @@ public class NukeGadget extends BlockContainer implements IBomb { * world.spawnEntityInWorld(entity); */ - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); - entity.posX = x; - entity.posY = y; - entity.posZ = z; - entity.destructionRange = MainRegistry.gadgetRadius; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, MainRegistry.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); // ExplosionNukeAdvanced.mush(world, x, y, z); if (MainRegistry.enableNukeClouds) { EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); entity2.posX = x; - entity2.posY = y - 15; + entity2.posY = y; entity2.posZ = z; world.spawnEntityInWorld(entity2); } else { diff --git a/com/hbm/blocks/bomb/NukeMan.java b/com/hbm/blocks/bomb/NukeMan.java index dee859842..4c1ce9327 100644 --- a/com/hbm/blocks/bomb/NukeMan.java +++ b/com/hbm/blocks/bomb/NukeMan.java @@ -9,6 +9,7 @@ import com.hbm.entity.effect.EntityNukeCloudNoShroom; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeMan; @@ -173,22 +174,14 @@ public class NukeMan extends BlockContainer implements IBomb { world.spawnEntityInWorld(entity);*/ - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); - entity.posX = x; - entity.posY = y; - entity.posZ = z; - entity.destructionRange = MainRegistry.manRadius; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, MainRegistry.manRadius, x + 0.5, y + 0.5, z + 0.5)); //ExplosionNukeAdvanced.mush(world, x, y, z); if (MainRegistry.enableNukeClouds) { EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); entity2.posX = x; - entity2.posY = y - 17; + entity2.posY = y; entity2.posZ = z; world.spawnEntityInWorld(entity2); } else { diff --git a/com/hbm/blocks/bomb/NukeMike.java b/com/hbm/blocks/bomb/NukeMike.java index a710931de..a627d3496 100644 --- a/com/hbm/blocks/bomb/NukeMike.java +++ b/com/hbm/blocks/bomb/NukeMike.java @@ -10,6 +10,7 @@ import com.hbm.entity.effect.EntityNukeCloudNoShroom; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeMike; @@ -141,27 +142,19 @@ public class NukeMike extends BlockContainer implements IBomb { // world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); - entity.posX = x; - entity.posY = y; - entity.posZ = z; - entity.destructionRange = r; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, MainRegistry.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); if (MainRegistry.enableNukeClouds) { if (r < 200) { EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); entity2.posX = x; - entity2.posY = y - (r / 10); + entity2.posY = y; entity2.posZ = z; world.spawnEntityInWorld(entity2); } else { - EntityNukeCloudBig entity2 = new EntityNukeCloudBig(world, 1000); + EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); entity2.posX = x; - entity2.posY = y - (r / 10); + entity2.posY = y; entity2.posZ = z; world.spawnEntityInWorld(entity2); } diff --git a/com/hbm/blocks/bomb/NukeTsar.java b/com/hbm/blocks/bomb/NukeTsar.java index b91c8dd23..dfc969c83 100644 --- a/com/hbm/blocks/bomb/NukeTsar.java +++ b/com/hbm/blocks/bomb/NukeTsar.java @@ -5,8 +5,10 @@ import java.util.Map; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntityNukeTsar; @@ -149,16 +151,14 @@ public class NukeTsar extends BlockContainer implements IBomb { tetn.clearSlots(); //world.spawnParticle("hugeexplosion", x, y, z, 0, 0, 0); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); - entity.posX = x; - entity.posY = y; - entity.posZ = z; - entity.destructionRange = r; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - - world.spawnEntityInWorld(entity); + + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, MainRegistry.tsarRadius, x + 0.5, y + 0.5, z + 0.5)); + + EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000); + entity2.posX = x; + entity2.posY = y; + entity2.posZ = z; + world.spawnEntityInWorld(entity2); //ExplosionNukeAdvanced.mush(world, x, y, z); } diff --git a/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/com/hbm/entity/logic/EntityNukeExplosionMK4.java index f0a71526e..d0394e5b0 100644 --- a/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ b/com/hbm/entity/logic/EntityNukeExplosionMK4.java @@ -1,6 +1,8 @@ package com.hbm.entity.logic; +import com.hbm.entity.effect.EntityFalloutRain; import com.hbm.explosion.ExplosionLarge; +import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeRay; import com.hbm.main.MainRegistry; @@ -40,6 +42,8 @@ public class EntityNukeExplosionMK4 extends Entity { return; } + ExplosionNukeGeneric.dealDamage(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, this.length * 2); + if(explosion == null) explosion = new ExplosionNukeRay(worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, this.strength, this.count, this.speed, this.length); @@ -52,6 +56,15 @@ public class EntityNukeExplosionMK4 extends Entity { //MainRegistry.logger.info(explosion.getProgress() + " / " + count / length); explosion.processTip(speed); } else { + + EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj, (int)(this.length * 1.8) * 10); + fallout.posX = this.posX; + fallout.posY = this.posY; + fallout.posZ = this.posZ; + fallout.setScale((int)(this.length * 1.8)); + + this.worldObj.spawnEntityInWorld(fallout); + this.setDead(); } } diff --git a/com/hbm/entity/missile/EntityMIRV.java b/com/hbm/entity/missile/EntityMIRV.java index aa7546572..7fda3018f 100644 --- a/com/hbm/entity/missile/EntityMIRV.java +++ b/com/hbm/entity/missile/EntityMIRV.java @@ -3,6 +3,7 @@ package com.hbm.entity.missile; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.main.MainRegistry; @@ -39,19 +40,11 @@ public class EntityMIRV extends EntityThrowable { { if(!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = MainRegistry.mirvRadius; - entity.speed = 25; - entity.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.mirvRadius, posX, posY, posZ)); EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000); entity2.posX = this.posX; - entity2.posY = this.posY - 9; + entity2.posY = this.posY; entity2.posZ = this.posZ; this.worldObj.spawnEntityInWorld(entity2); } diff --git a/com/hbm/entity/missile/EntityMissileMirv.java b/com/hbm/entity/missile/EntityMissileMirv.java index c610f313a..72f6c6c73 100644 --- a/com/hbm/entity/missile/EntityMissileMirv.java +++ b/com/hbm/entity/missile/EntityMissileMirv.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.explosion.ExplosionChaos; import com.hbm.items.ModItems; @@ -28,15 +29,8 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { @Override public void onImpact() { - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = MainRegistry.missileRadius; - entity.speed = MainRegistry.blastSpeed; - entity.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity); + + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.missileRadius, posX, posY, posZ)); EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000); entity2.posX = this.posX; diff --git a/com/hbm/entity/mob/EntityNuclearCreeper.java b/com/hbm/entity/mob/EntityNuclearCreeper.java index e614e2348..e7be3413e 100644 --- a/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -5,11 +5,13 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.explosion.ExplosionParticle; import com.hbm.explosion.ExplosionParticleB; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -451,21 +453,14 @@ public class EntityNuclearCreeper extends EntityMob { //this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float)(this.explosionRadius * 2), flag); this.explosionRadius *= 3; } - - EntityNukeExplosionMK3 explosion = new EntityNukeExplosionMK3(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = this.explosionRadius; - explosion.posX = this.posX; - explosion.posY = this.posY; - explosion.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(explosion); + + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, explosionRadius, posX, posY, posZ)); if(this.getPowered()) { EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000); entity2.posX = this.posX; - entity2.posY = this.posY - 11; + entity2.posY = this.posY; entity2.posZ = this.posZ; this.worldObj.spawnEntityInWorld(entity2); } else { diff --git a/com/hbm/entity/projectile/EntityBaleflare.java b/com/hbm/entity/projectile/EntityBaleflare.java index a4aebe9a6..323fad765 100644 --- a/com/hbm/entity/projectile/EntityBaleflare.java +++ b/com/hbm/entity/projectile/EntityBaleflare.java @@ -2,7 +2,7 @@ package com.hbm.entity.projectile; import java.util.List; -import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.explosion.ExplosionParticleB; import com.hbm.main.MainRegistry; @@ -243,15 +243,7 @@ public class EntityBaleflare extends Entity implements IProjectile { { if (!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(this.worldObj); - entity0.posX = this.posX; - entity0.posY = this.posY; - entity0.posZ = this.posZ; - entity0.destructionRange = MainRegistry.fatmanRadius; - entity0.speed = 25; - entity0.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity0); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.fatmanRadius, posX, posY, posZ)); ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ); } diff --git a/com/hbm/entity/projectile/EntityMiniMIRV.java b/com/hbm/entity/projectile/EntityMiniMIRV.java index 780c266a0..52d9f5f72 100644 --- a/com/hbm/entity/projectile/EntityMiniMIRV.java +++ b/com/hbm/entity/projectile/EntityMiniMIRV.java @@ -2,7 +2,7 @@ package com.hbm.entity.projectile; import java.util.List; -import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionParticle; import com.hbm.explosion.ExplosionParticleB; @@ -250,15 +250,8 @@ public class EntityMiniMIRV extends Entity implements IProjectile { if (!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(this.worldObj); - entity0.posX = this.posX; - entity0.posY = this.posY; - entity0.posZ = this.posZ; - entity0.destructionRange = MainRegistry.fatmanRadius; - entity0.speed = MainRegistry.blastSpeed; - entity0.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity0); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.fatmanRadius, posX, posY, posZ)); + if(rand.nextInt(100) == 0) { ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ); @@ -389,15 +382,8 @@ public class EntityMiniMIRV extends Entity implements IProjectile { if (!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(this.worldObj); - entity0.posX = this.posX; - entity0.posY = this.posY; - entity0.posZ = this.posZ; - entity0.destructionRange = MainRegistry.fatmanRadius; - entity0.speed = 25; - entity0.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity0); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.fatmanRadius, posX, posY, posZ)); + if(rand.nextInt(100) == 0) { ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ); diff --git a/com/hbm/entity/projectile/EntityMiniNuke.java b/com/hbm/entity/projectile/EntityMiniNuke.java index 4a624ae6b..6f1663a19 100644 --- a/com/hbm/entity/projectile/EntityMiniNuke.java +++ b/com/hbm/entity/projectile/EntityMiniNuke.java @@ -2,7 +2,7 @@ package com.hbm.entity.projectile; import java.util.List; -import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.explosion.ExplosionParticle; import com.hbm.explosion.ExplosionParticleB; import com.hbm.main.MainRegistry; @@ -237,15 +237,8 @@ public class EntityMiniNuke extends Entity implements IProjectile { if (!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(this.worldObj); - entity0.posX = this.posX; - entity0.posY = this.posY; - entity0.posZ = this.posZ; - entity0.destructionRange = MainRegistry.fatmanRadius; - entity0.speed = MainRegistry.blastSpeed; - entity0.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity0); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.fatmanRadius, posX, posY, posZ)); + //Perma-baleflare mode if the polaroid's glitched if(MainRegistry.polaroidID == 11) if(rand.nextInt(100) >= 0) //edited @@ -385,15 +378,8 @@ public class EntityMiniNuke extends Entity implements IProjectile { if (!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(this.worldObj); - entity0.posX = this.posX; - entity0.posY = this.posY; - entity0.posZ = this.posZ; - entity0.destructionRange = MainRegistry.fatmanRadius; - entity0.speed = 25; - entity0.coefficient = 10.0F; - - this.worldObj.spawnEntityInWorld(entity0); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, MainRegistry.fatmanRadius, posX, posY, posZ)); + if(rand.nextInt(100) == 0) { ExplosionParticleB.spawnMush(this.worldObj, (int)this.posX, (int)this.posY - 3, (int)this.posZ); diff --git a/com/hbm/explosion/ExplosionNukeGeneric.java b/com/hbm/explosion/ExplosionNukeGeneric.java index a84e050d3..dd6faebf9 100644 --- a/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/com/hbm/explosion/ExplosionNukeGeneric.java @@ -17,6 +17,7 @@ import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; @@ -41,9 +42,11 @@ import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.machine.TileEntityDummy; +import cofh.api.energy.IEnergyProvider; + public class ExplosionNukeGeneric { - private final static Random field_149933_a = new Random(); + private final static Random random = new Random(); public static void detonateTestBomb(World world, int x, int y, int z, int bombStartStrength) { int r = bombStartStrength; @@ -224,7 +227,7 @@ public class ExplosionNukeGeneric { // entity.attackEntityFrom(DamageSource.generic, // ((int)((d11 * d11 + d11) / 2.0D * 8.0D * // bombStartStrength + 1.0D))); - double d8 = 0.125 + (field_149933_a.nextDouble() * 0.25); + double d8 = 0.125 + (random.nextDouble() * 0.25); entity.motionX -= d5 * d8; entity.motionY -= d6 * d8; entity.motionZ -= d7 * d8; @@ -292,7 +295,7 @@ public class ExplosionNukeGeneric { } if(!(entity instanceof EntityLivingBase) && !(entity instanceof EntityPlayerMP) && !(entity instanceof EntityBlackHole)) { - if(field_149933_a.nextInt(8) == 0) + if(random.nextInt(8) == 0) entity.setDead(); } } @@ -330,13 +333,13 @@ public class ExplosionNukeGeneric { //blocks to be spared int protection = (int)(b.getExplosionResistance(null)/300f); if (b == ModBlocks.brick_concrete) { - rand = field_149933_a.nextInt(8); + rand = random.nextInt(8); if (rand == 0) { world.setBlock(x, y, z, Blocks.gravel, 0, 3); return 0; } } else if (b == ModBlocks.brick_light) { - rand = field_149933_a.nextInt(3); + rand = random.nextInt(3); if (rand == 0) { world.setBlock(x, y, z, ModBlocks.waste_planks, 0, 3); return 0; @@ -345,14 +348,14 @@ public class ExplosionNukeGeneric { return 0; } } else if (b == ModBlocks.brick_obsidian) { - rand = field_149933_a.nextInt(20); + rand = random.nextInt(20); if (rand == 0) { world.setBlock(x, y, z, Blocks.obsidian, 0, 3); } } else if (b == Blocks.obsidian) { world.setBlock(x, y, z, ModBlocks.gravel_obsidian, 0, 3); return 0; - } else if(field_149933_a.nextInt(protection+3)==0){ + } else if(random.nextInt(protection+3)==0){ world.setBlock(x, y, z, ModBlocks.block_scrap,0,3); } return protection; @@ -427,7 +430,7 @@ public class ExplosionNukeGeneric { } else if (b == Blocks.sand) { - rand = field_149933_a.nextInt(20); + rand = random.nextInt(20); if (rand == 1 && world.getBlockMetadata(x, y, z) == 0) { world.setBlock(x, y, z, ModBlocks.waste_trinitite); } @@ -445,7 +448,7 @@ public class ExplosionNukeGeneric { } else if (b == Blocks.coal_ore) { - rand = field_149933_a.nextInt(10); + rand = random.nextInt(10); if (rand == 1 || rand == 2 || rand == 3) { world.setBlock(x, y, z, Blocks.diamond_ore); } @@ -479,14 +482,14 @@ public class ExplosionNukeGeneric { } else if (b == ModBlocks.ore_uranium) { - rand = field_149933_a.nextInt(30); + rand = random.nextInt(30); if (rand == 1) { world.setBlock(x, y, z, ModBlocks.ore_schrabidium); } } else if (b == ModBlocks.ore_nether_uranium) { - rand = field_149933_a.nextInt(30); + rand = random.nextInt(30); if (rand == 1) { world.setBlock(x, y, z, ModBlocks.ore_nether_schrabidium); } @@ -536,7 +539,7 @@ public class ExplosionNukeGeneric { } else if (world.getBlock(x, y, z) == Blocks.sand) { - rand = field_149933_a.nextInt(20); + rand = random.nextInt(20); if (rand == 1 && world.getBlockMetadata(x, y, z) == 0) { world.setBlock(x, y, z, ModBlocks.waste_trinitite); } @@ -554,7 +557,7 @@ public class ExplosionNukeGeneric { } else if (world.getBlock(x, y, z) == Blocks.coal_ore) { - rand = field_149933_a.nextInt(30); + rand = random.nextInt(30); if (rand == 1 || rand == 2 || rand == 3) { world.setBlock(x, y, z, Blocks.diamond_ore); } @@ -593,54 +596,36 @@ public class ExplosionNukeGeneric { if (!world.isRemote) { Block b = world.getBlock(x,y,z); - if (world.getTileEntity(x, y, z) != null && (world.getTileEntity(x, y, z) instanceof ISource - || world.getTileEntity(x, y, z) instanceof IConsumer - || world.getTileEntity(x, y, z) instanceof TileEntityDummy)) { - world.setBlock(x, y, z, ModBlocks.block_electrical_scrap,0,2); + TileEntity te = world.getTileEntity(x, y, z); + + if (te != null && te instanceof ISource) { + + ((ISource)te).setSPower(0); + + if(random.nextInt(5) < 1) + world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } + if (te != null && te instanceof IConsumer) { + + ((IConsumer)te).setPower(0); + + if(random.nextInt(5) < 1) + world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); + } + if (te != null && te instanceof IEnergyProvider) { - else if (b == ModBlocks.red_wire_coated || - b == ModBlocks.factory_titanium_furnace || - b == ModBlocks.factory_titanium_conductor || - b == ModBlocks.factory_advanced_furnace || - b == ModBlocks.factory_advanced_conductor || - b == ModBlocks.reactor_conductor || - b == ModBlocks.fusion_conductor || - b == ModBlocks.fusion_center || - b == ModBlocks.fusion_motor || - b == ModBlocks.watz_conductor || - b == ModBlocks.fwatz_conductor || - b == ModBlocks.fwatz_hatch || - b == ModBlocks.fwatz_computer) { - world.setBlock(x, y, z, ModBlocks.block_electrical_scrap,0,2); - } - - else if (b == ModBlocks.red_cable || - b == Blocks.redstone_wire || - b == Blocks.powered_repeater || - b == Blocks.unpowered_repeater || - b == Blocks.activator_rail || - b == Blocks.detector_rail || - b == Blocks.golden_rail || - b == Blocks.redstone_block || - b == Blocks.redstone_lamp || - b == Blocks.redstone_ore || - b == Blocks.redstone_torch || - b == Blocks.unlit_redstone_torch || - b == Blocks.powered_comparator || - b == Blocks.unpowered_comparator) { - world.setBlock(x, y, z, Blocks.air,0,2); - } - - else if (b == Blocks.dispenser || - b == Blocks.dropper || - b == Blocks.piston || - b == Blocks.piston_extension || - b == Blocks.piston_head || - b == Blocks.sticky_piston) { - world.setBlock(x, y, z, Blocks.gravel,0,2); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.UP, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.UP), false); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.DOWN, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.DOWN), false); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.NORTH, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.NORTH), false); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.SOUTH, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.SOUTH), false); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.EAST, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.EAST), false); + ((IEnergyProvider)te).extractEnergy(ForgeDirection.WEST, ((IEnergyProvider)te).getEnergyStored(ForgeDirection.WEST), false); + + if(random.nextInt(5) <= 1) + world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } + if((b == ModBlocks.fusion_conductor || b == ModBlocks.fwatz_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater || b == ModBlocks.fwatz_computer) && random.nextInt(10) == 0) + world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } - //world.setBlock(x, y, z, Blocks.air); } } diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index 02e99cb48..9f75f095d 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -2667,6 +2667,27 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.motor, 2)); list.add(new ItemStack(ModItems.circuit_gold, 4)); break; + case TURRET_SPITFIRE: + list.add(new ItemStack(ModItems.ingot_steel, 6)); + list.add(new ItemStack(ModItems.ingot_red_copper, 6)); + list.add(new ItemStack(ModItems.plate_steel, 16)); + list.add(new ItemStack(ModItems.plate_iron, 8)); + list.add(new ItemStack(ModItems.hull_small_steel, 4)); + list.add(new ItemStack(ModItems.pipes_steel, 2)); + list.add(new ItemStack(ModItems.motor, 3)); + list.add(new ItemStack(ModItems.circuit_red_copper, 4)); + break; + case TURRET_CIWS: + list.add(new ItemStack(ModItems.ingot_steel, 6)); + list.add(new ItemStack(ModItems.ingot_red_copper, 8)); + list.add(new ItemStack(ModItems.plate_steel, 10)); + list.add(new ItemStack(ModItems.plate_titanium, 4)); + list.add(new ItemStack(ModItems.hull_small_aluminium, 2)); + list.add(new ItemStack(ModItems.pipes_steel, 6)); + list.add(new ItemStack(ModItems.motor, 4)); + list.add(new ItemStack(ModItems.circuit_gold, 5)); + list.add(new ItemStack(ModItems.magnetron, 3)); + break; case HUNTER_CHOPPER: list.add(new ItemStack(ModItems.chopper_blades, 5)); list.add(new ItemStack(ModItems.chopper_gun, 1)); @@ -3550,6 +3571,12 @@ public class MachineRecipes { case TURRET_TAU: output = new ItemStack(ModBlocks.turret_tau, 1); break; + case TURRET_SPITFIRE: + output = new ItemStack(ModBlocks.turret_spitfire, 1); + break; + case TURRET_CIWS: + output = new ItemStack(ModBlocks.turret_cwis, 1); + break; case HUNTER_CHOPPER: output = new ItemStack(ModItems.chopper, 1); break; diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index e1861edb3..af48e45e5 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -1083,6 +1083,7 @@ public class ModItems { public static Item turret_flamer_ammo; public static Item turret_tau_ammo; public static Item turret_spitfire_ammo; + public static Item turret_cwis_ammo; public static Item bucket_mud; public static Item bucket_acid; @@ -2059,6 +2060,7 @@ public class ModItems { turret_flamer_ammo = new ItemTurretAmmo(ModBlocks.turret_flamer, 200).setUnlocalizedName("turret_flamer_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_flamer_ammo"); turret_tau_ammo = new ItemTurretAmmo(ModBlocks.turret_tau, 100).setUnlocalizedName("turret_tau_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_tau_ammo"); turret_spitfire_ammo = new ItemTurretAmmo(ModBlocks.turret_spitfire, 2).setUnlocalizedName("turret_spitfire_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_spitfire_ammo"); + turret_cwis_ammo = new ItemTurretAmmo(ModBlocks.turret_cwis, 250).setUnlocalizedName("turret_cwis_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_cwis_ammo"); template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":template_folder"); assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":assembly_template"); @@ -3116,6 +3118,7 @@ public class ModItems { GameRegistry.registerItem(turret_flamer_ammo, turret_flamer_ammo.getUnlocalizedName()); GameRegistry.registerItem(turret_tau_ammo, turret_tau_ammo.getUnlocalizedName()); GameRegistry.registerItem(turret_spitfire_ammo, turret_spitfire_ammo.getUnlocalizedName()); + GameRegistry.registerItem(turret_cwis_ammo, turret_cwis_ammo.getUnlocalizedName()); //-C-l-i-p-s- Magazines GameRegistry.registerItem(clip_revolver_iron, clip_revolver_iron.getUnlocalizedName()); diff --git a/com/hbm/items/food/ItemWaffle.java b/com/hbm/items/food/ItemWaffle.java index 6b4f2f9ad..f14ab2361 100644 --- a/com/hbm/items/food/ItemWaffle.java +++ b/com/hbm/items/food/ItemWaffle.java @@ -1,7 +1,9 @@ package com.hbm.items.food; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.explosion.ExplosionParticle; +import com.hbm.main.MainRegistry; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemFood; @@ -17,14 +19,7 @@ public class ItemWaffle extends ItemFood { @Override public void onFoodEaten(ItemStack stack, World world, EntityPlayer player) { - EntityNukeExplosionAdvanced explosion = new EntityNukeExplosionAdvanced(world); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 25; - explosion.posX = player.posX; - explosion.posY = player.posY; - explosion.posZ = player.posZ; - world.spawnEntityInWorld(explosion); + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, (int)(MainRegistry.fatmanRadius * 1.5), player.posX, player.posY, player.posZ)); ExplosionParticle.spawnMush(world, (int)player.posX, (int)player.posY - 3, (int)player.posZ); } diff --git a/com/hbm/items/tool/ItemAssemblyTemplate.java b/com/hbm/items/tool/ItemAssemblyTemplate.java index 9141bd2a8..341c86849 100644 --- a/com/hbm/items/tool/ItemAssemblyTemplate.java +++ b/com/hbm/items/tool/ItemAssemblyTemplate.java @@ -179,6 +179,8 @@ public class ItemAssemblyTemplate extends Item { TURRET_ROCKET, TURRET_FLAMER, TURRET_TAU, + TURRET_SPITFIRE, + TURRET_CIWS, MISSILE_HE_1, MISSILE_FIRE_1, MISSILE_CLUSTER_1, @@ -620,6 +622,10 @@ public class ItemAssemblyTemplate extends Item { return 250; case TURRET_TAU: return 350; + case TURRET_SPITFIRE: + return 350; + case TURRET_CIWS: + return 400; case HUNTER_CHOPPER: return 300; case MISSILE_HE_1: diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 5999c5826..e4390dc79 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -724,6 +724,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.turret_rocket_ammo, 1), new Object[] { "TS ", "SGS", " SR", 'T', Blocks.tnt, 'S', "plateSteel", 'G', Items.gunpowder, 'R', "dustRedstone" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.turret_flamer_ammo, 1), new Object[] { "FSF", "FPF", "FPF", 'F', ModItems.gun_immolator_ammo, 'S', ModItems.pipes_steel, 'P', "plateCopper" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.turret_tau_ammo, 1), new Object[] { "AAA", "AUA", "AAA", 'A', ModItems.gun_xvl1456_ammo, 'U', "blockUranium" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.turret_spitfire_ammo, 1), new Object[] { "CP ", "PTP", " PR", 'P', "plateSteel", 'C', ModItems.circuit_copper, 'T', Blocks.tnt, 'R', "dustRedstone" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.turret_cwis_ammo, 1), new Object[] { "LLL", "GGG", "IGI", 'L', "plateLead", 'I', "plateIron", 'G', Items.gunpowder })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_generic, 4), new Object[] { "RS ", "ITI", " I ", 'I', "plateIron", 'R', ModItems.wire_red_copper, 'S', "plateSteel", 'T', Item.getItemFromBlock(Blocks.tnt) })); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_strong, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_generic, 'S', Items.gunpowder }); @@ -742,6 +744,10 @@ public class CraftingManager { //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_zomg, 1), new Object[] {"RC ", "PXP", "NPN", 'P', ModItems.plate_paa, 'R', ModItems.wire_red_copper, 'C', "plateCMBSteel", 'X', ModItems.crystal_xen, 'N', ModItems.powder_power })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_aschrab, 1), new Object[] {"RS ", "ITI", " S ", 'I', "paneGlassColorless", 'R', ModItems.wire_red_copper, 'S', "plateSteel", 'T', ModItems.cell_anti_schrabidium })); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_mk2, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_strong, 'S', Items.gunpowder }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_fuel, Items.flint }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_biofuel, Items.flint }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_petroil, Items.flint }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.grenade_gascan, 1), new Object[] { ModItems.canister_kerosene, Items.flint }); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_pulse, 4), new Object[] { "WPW", "WSW", "SMS", 'W', ModItems.wire_red_copper, 'P', "plateIron", 'S', "plateSteel", 'M', ModItems.magnetron })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.grenade_lemon, 1), new Object[] { ModItems.lemon, ModItems.grenade_strong })); //GameRegistry.addRecipe(new ItemStack(ModItems.grenade_black_hole, 1), new Object[] { " C ", "PBP", "PCP", 'C', ModItems.coil_advanced_alloy, 'P', ModItems.ingot_polymer, 'B', ModItems.black_hole }); @@ -832,6 +838,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.det_cord), 8), new Object[] { "TNT", "NGN", "TNT", 'T', "plateIron", 'N', "dustNiter", 'G', Items.gunpowder })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.det_charge), 1), new Object[] { "PDP", "DTD", "PDP", 'P', "plateSteel", 'D', ModBlocks.det_cord, 'T', Blocks.tnt })); ////GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.rejuvinator), 1), new Object[] { "TDT", "PCP", "TST", 'P', ModItems.pipes_steel, 'T', ModBlocks.factory_titanium_hull, 'D', "ingotDesh", 'S', "ingotSchrabidium", 'C', Items.clock })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.emp_bomb), 1), new Object[] { "LML", "LCL", "LML", 'L', "plateLead", 'M', ModItems.magnetron, 'C', ModItems.circuit_gold })); //GameRegistry.addRecipe(new ItemStack(ModItems.gadget_core, 1), new Object[] { "PPP", "PUP", "PPP", 'P', ModItems.nugget_pu239, 'U', ModItems.nugget_u238 }); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gadget_explosive, 16), new Object[] { "ATP", "ATW", "ATP", 'P', "plateTitanium", 'A', "plateAluminum", 'T', Item.getItemFromBlock(Blocks.tnt), 'W', ModItems.wire_gold })); diff --git a/com/hbm/render/entity/RenderSmallNukeMK3.java b/com/hbm/render/entity/RenderSmallNukeMK3.java index c723e11a3..f68c1bb94 100644 --- a/com/hbm/render/entity/RenderSmallNukeMK3.java +++ b/com/hbm/render/entity/RenderSmallNukeMK3.java @@ -70,15 +70,15 @@ public class RenderSmallNukeMK3 extends Render { // make the fireball fade so it looks like the cloud is formed by it // use more rings. really. // more polygons, this is a cloud, not a metal pillar made by a seven-yo - // duration: as long as you please + // duration: as long as you want // //your other render classes look like shit, write code like a sensible person for once. good luck, you'll need it - 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_) { + public void render(EntityNukeCloudSmall cloud, double posX, double posY, double posZ, float fa, float fb) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_ + 0.25F, (float)p_76986_6_); + GL11.glTranslatef((float)posX, (float)posY + 0.25F, (float)posZ); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); @@ -208,9 +208,11 @@ public class RenderSmallNukeMK3 extends Render { } //very professional, i love me some null textures /s + + //there, fixed it ~bob @Override protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return null; + return blastTexture; } } diff --git a/com/hbm/tileentity/bomb/TileEntityTurretCIWS.java b/com/hbm/tileentity/bomb/TileEntityTurretCIWS.java index c20737292..df5948da5 100644 --- a/com/hbm/tileentity/bomb/TileEntityTurretCIWS.java +++ b/com/hbm/tileentity/bomb/TileEntityTurretCIWS.java @@ -16,10 +16,6 @@ public class TileEntityTurretCIWS extends TileEntityTurretBase { super.updateEntity(); - this.ammo = 100; - - - if(!worldObj.isRemote) { if(spin > 0) diff --git a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java index a7a2f0784..b4eccbf4b 100644 --- a/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java +++ b/com/hbm/tileentity/machine/TileEntityReactorMultiblock.java @@ -8,6 +8,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineGenerator; import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.explosion.ExplosionParticle; import com.hbm.handler.FluidTypeHandler.FluidType; @@ -20,6 +21,7 @@ import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.special.ItemFuelRod; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; @@ -679,15 +681,9 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv { this.slots[i] = null; } - - EntityNukeExplosionMK3 explosion = new EntityNukeExplosionMK3(this.worldObj); - explosion.speed = 25; - explosion.coefficient = 5.0F; - explosion.destructionRange = 35; - explosion.posX = this.xCoord; - explosion.posY = this.yCoord; - explosion.posZ = this.zCoord; - this.worldObj.spawnEntityInWorld(explosion); + + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); + ExplosionParticle.spawnMush(this.worldObj, this.xCoord, this.yCoord - 3, this.zCoord); }