diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index c49aeec2b..6ea6d231f 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -143,7 +143,7 @@ tile.machine_combine_factory.name=CMB-Stahl Hochofen container.machineCMB=CMB-Stahl Hochofen tile.machine_teleporter.name=Teleporter container.teleporter=Teleporter -tile.machine_reix_mainframe.name=Rei-X Hauptrechner +tile.machine_reix_mainframe.name=Rei-X Hauptrechner (WIP) container.reix=Rei-X Hauptrechner tile.machine_industrial_generator.name=Industrieller Generator container.iGenerator=Industrieller Generator @@ -587,6 +587,7 @@ item.grenade_generic.name=Handgranate item.grenade_strong.name=Verbesserte Handgranate item.grenade_frag.name=Splittergranate item.grenade_fire.name=Brandsplittergranate +item.grenade_shrapnel.name=Schrapnellgranate item.grenade_cluster.name=Cluster-Bombe item.grenade_flare.name=Blendgranate item.grenade_electric.name=Blitzbombe @@ -812,10 +813,12 @@ item.crowbar.name=Mk.V Kistenöffnungsapparat "Brechstange" item.mask_of_infamy.name=Maske der Schande tile.det_cord.name=Det Cord +tile.det_charge.name=Sprengladung tile.red_barrel.name=Explosives Fass tile.yellow_barrel.name=Radioaktives Fass item.designator.name=Kurzdistanz Zielmarkierer +item.designator_range.name=Weitstrecken-Zielmarkierer item.missile_generic.name=HE Rakete item.missile_anti_ballistic.name=Flugabwehrrakete item.missile_incendiary.name=Brandrakete @@ -849,6 +852,7 @@ item.paa_boots.name=PaA-"olle Latschen" item.goggles.name=Schutzbrille item.gas_mask.name=Gasmaske +item.oxy_mask.name=Sauerstoffmaske item.t45_helmet.name=T45-Powerrüstungshelm item.t45_plate.name=T45-Powerrüstungsbrustpanzer @@ -1054,6 +1058,7 @@ item.chopper.name=Jagdschrauber tile.crystal_virus.name=Dunkler Kristall tile.crystal_hardened.name=Gehärteter Dunkler Kristall +tile.crystal_pulsar.name=Pulsating Crystal tile.cheater_virus.name=Geliertes Euphemium tile.cheater_virus_seed.name=Instabiler Euphemiumschrabid-Block \ No newline at end of file diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 531b816ba..5969f7576 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -143,7 +143,7 @@ tile.machine_combine_factory.name=CMB Steel Furnace container.machineCMB=CMB Steel Furnace tile.machine_teleporter.name=Teleporter container.teleporter=Teleporter -tile.machine_reix_mainframe.name=Rei-X Mainframe +tile.machine_reix_mainframe.name=Rei-X Mainframe (WIP) container.reix=Rei-X Mainframe tile.machine_industrial_generator.name=Industrial Generator container.iGenerator=Industrial Generator @@ -587,6 +587,7 @@ item.grenade_generic.name=Grenade item.grenade_strong.name=Enhanced Grenade item.grenade_frag.name=Frag Grenade item.grenade_fire.name=Flame Frag Grenade +item.grenade_shrapnel.name=Shrapnel Grenade item.grenade_cluster.name=Cluster Bomb item.grenade_flare.name=Flare Grenade item.grenade_electric.name=Lightning Bomb @@ -812,10 +813,12 @@ item.crowbar.name=Mk.V Crate Opening Device "Crowbar" item.mask_of_infamy.name=Mask of Infamy tile.det_cord.name=Det Cord +tile.det_charge.name=Explosive Charge tile.red_barrel.name=Explosive Barrel tile.yellow_barrel.name=Radioactive Barrel item.designator.name=Short Range Target Designator +item.designator_range.name=Long Range Target Designator item.missile_generic.name=High Explosive Missile item.missile_anti_ballistic.name=Anti Ballistic Missile item.missile_incendiary.name=Incendiary Missile @@ -849,6 +852,7 @@ item.paa_boots.name=PaA "good ol' shoes" item.goggles.name=Protection Goggles item.gas_mask.name=Gas Mask +item.oxy_mask.name=Oxygen Mask item.t45_helmet.name=T45 Power Armor Helmet item.t45_plate.name=T45 Power Armor Chestplate @@ -1054,6 +1058,7 @@ item.chopper.name=Hunter Chopper tile.crystal_virus.name=Dark Crystal tile.crystal_hardened.name=Hardened Dark Crystal +tile.crystal_pulsar.name=Pulsating Crystal tile.cheater_virus.name=Gelid Euphemium tile.cheater_virus_seed.name=Unstable Euphemium Schrabide Block \ No newline at end of file diff --git a/assets/hbm/textures/items/designator_range.png b/assets/hbm/textures/items/designator_range.png new file mode 100644 index 000000000..8521a8347 Binary files /dev/null and b/assets/hbm/textures/items/designator_range.png differ diff --git a/assets/hbm/textures/items/pill_iodine.png b/assets/hbm/textures/items/pill_iodine.png new file mode 100644 index 000000000..1e2bbae04 Binary files /dev/null and b/assets/hbm/textures/items/pill_iodine.png differ diff --git a/assets/hbm/textures/items/rtg_unit.png b/assets/hbm/textures/items/rtg_unit.png index d86ddfda6..0237ba1e6 100644 Binary files a/assets/hbm/textures/items/rtg_unit.png and b/assets/hbm/textures/items/rtg_unit.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index ebad3f50d..3052799ae 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -7,6 +7,7 @@ import com.hbm.blocks.bomb.BombMulti; import com.hbm.blocks.bomb.BombThermo; import com.hbm.blocks.bomb.CheaterVirus; import com.hbm.blocks.bomb.CheaterVirusSeed; +import com.hbm.blocks.bomb.CrystalPulsar; import com.hbm.blocks.bomb.CrystalVirus; import com.hbm.blocks.bomb.DetCord; import com.hbm.blocks.bomb.LaunchPad; @@ -423,6 +424,7 @@ public class ModBlocks { public static Block launch_pad_endo; public static Block launch_pad_exo; public static Block launch_pad_mirv; + public static Block launch_pad_anti; public static final int guiID_launch_pad = 19; public static Block book_guide; @@ -439,6 +441,7 @@ public class ModBlocks { public static Block cheater_virus_seed; public static Block crystal_virus; public static Block crystal_hardened; + public static Block crystal_pulsar; public static Block mud_block; public static Fluid mud_fluid; @@ -708,6 +711,7 @@ public class ModBlocks { launch_pad_endo = new LaunchPad(Material.iron).setBlockName("launch_pad_endo").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); launch_pad_exo = new LaunchPad(Material.iron).setBlockName("launch_pad_exo").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); launch_pad_mirv = new LaunchPad(Material.iron).setBlockName("launch_pad_mirv").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); + launch_pad_anti = new LaunchPad(Material.iron).setBlockName("launch_pad_anti").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke); @@ -720,10 +724,11 @@ public class ModBlocks { machine_reix_mainframe = new MachineReiXMainframe(Material.iron).setBlockName("machine_reix_mainframe").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock); - cheater_virus = new CheaterVirus(Material.cloth).setBlockName("cheater_virus").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus"); - cheater_virus_seed = new CheaterVirusSeed(Material.cloth).setBlockName("cheater_virus_seed").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus_seed"); - crystal_virus = new CrystalVirus(Material.cloth).setBlockName("crystal_virus").setHardness(15.0F).setResistance(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_virus"); - crystal_hardened = new BlockGeneric(Material.cloth).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened"); + cheater_virus = new CheaterVirus(Material.iron).setBlockName("cheater_virus").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus"); + cheater_virus_seed = new CheaterVirusSeed(Material.iron).setBlockName("cheater_virus_seed").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus_seed"); + crystal_virus = new CrystalVirus(Material.iron).setBlockName("crystal_virus").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_virus"); + crystal_hardened = new BlockGeneric(Material.iron).setBlockName("crystal_hardened").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_hardened"); + crystal_pulsar = new CrystalPulsar(Material.iron).setBlockName("crystal_pulsar").setHardness(15.0F).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":crystal_pulsar"); statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); @@ -996,6 +1001,7 @@ public class ModBlocks { GameRegistry.registerBlock(launch_pad_endo, launch_pad_endo.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad_exo, launch_pad_exo.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad_mirv, launch_pad_mirv.getUnlocalizedName()); + GameRegistry.registerBlock(launch_pad_anti, launch_pad_anti.getUnlocalizedName()); //Guide GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); @@ -1026,6 +1032,7 @@ public class ModBlocks { //??? GameRegistry.registerBlock(crystal_virus, crystal_virus.getUnlocalizedName()); GameRegistry.registerBlock(crystal_hardened, crystal_hardened.getUnlocalizedName()); + GameRegistry.registerBlock(crystal_pulsar, crystal_pulsar.getUnlocalizedName()); GameRegistry.registerBlock(cheater_virus, cheater_virus.getUnlocalizedName()); GameRegistry.registerBlock(cheater_virus_seed, cheater_virus_seed.getUnlocalizedName()); } diff --git a/com/hbm/blocks/bomb/BombMulti.java b/com/hbm/blocks/bomb/BombMulti.java index ea73e5f5d..caf72d9d5 100644 --- a/com/hbm/blocks/bomb/BombMulti.java +++ b/com/hbm/blocks/bomb/BombMulti.java @@ -22,6 +22,7 @@ import net.minecraft.world.World; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -234,7 +235,8 @@ public class BombMulti extends BlockContainer implements IBomb { entity.clearSlots(); world.setBlockToAir(x, y, z); - world.createExplosion(null, x , y , z , this.explosionValue, true); + //world.createExplosion(null, x , y , z , this.explosionValue, true); + ExplosionLarge.explode(world, x, y, z, explosionValue, true, true, true); this.explosionValue = 0; if(this.clusterCount > 0) diff --git a/com/hbm/blocks/bomb/CrystalPulsar.java b/com/hbm/blocks/bomb/CrystalPulsar.java new file mode 100644 index 000000000..afc327d22 --- /dev/null +++ b/com/hbm/blocks/bomb/CrystalPulsar.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.ExplosionChaos; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; + +public class CrystalPulsar extends Block { + + public CrystalPulsar(Material p_i45394_1_) { + super(p_i45394_1_); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + + if(world.getBlock(x + 1, y, z) == ModBlocks.crystal_virus || + world.getBlock(x - 1, y, z) == ModBlocks.crystal_virus || + world.getBlock(x, y + 1, z) == ModBlocks.crystal_virus || + world.getBlock(x, y - 1, z) == ModBlocks.crystal_virus || + world.getBlock(x, y, z + 1) == ModBlocks.crystal_virus || + world.getBlock(x, y, z - 1) == ModBlocks.crystal_virus || + !world.isRemote) { + ExplosionChaos.hardenVirus(world, x, y, z, 10); + } + } + +} diff --git a/com/hbm/blocks/bomb/CrystalVirus.java b/com/hbm/blocks/bomb/CrystalVirus.java index 62d4d0876..f5a741afc 100644 --- a/com/hbm/blocks/bomb/CrystalVirus.java +++ b/com/hbm/blocks/bomb/CrystalVirus.java @@ -19,27 +19,27 @@ public class CrystalVirus extends Block { @Override public void updateTick(World world, int x, int y, int z, Random rand) { { - if(world.getBlock(x + 1, y, z) != ModBlocks.crystal_virus && world.getBlock(x + 1, y, z) != Blocks.air && world.getBlock(x + 1, y, z) != ModBlocks.crystal_hardened) { + if(world.getBlock(x + 1, y, z) != ModBlocks.crystal_virus && world.getBlock(x + 1, y, z) != Blocks.air && world.getBlock(x + 1, y, z) != ModBlocks.crystal_hardened && world.getBlock(x + 1, y, z) != ModBlocks.crystal_pulsar) { world.setBlock(x + 1, y, z, ModBlocks.crystal_virus); } - if(world.getBlock(x, y + 1, z) != ModBlocks.crystal_virus && world.getBlock(x, y + 1, z) != Blocks.air && world.getBlock(x, y + 1, z) != ModBlocks.crystal_hardened) { + if(world.getBlock(x, y + 1, z) != ModBlocks.crystal_virus && world.getBlock(x, y + 1, z) != Blocks.air && world.getBlock(x, y + 1, z) != ModBlocks.crystal_hardened && world.getBlock(x, y + 1, z) != ModBlocks.crystal_pulsar) { world.setBlock(x, y + 1, z, ModBlocks.crystal_virus); } - if(world.getBlock(x, y, z + 1) != ModBlocks.crystal_virus && world.getBlock(x, y, z + 1) != Blocks.air && world.getBlock(x, y, z + 1) != ModBlocks.crystal_hardened) { + if(world.getBlock(x, y, z + 1) != ModBlocks.crystal_virus && world.getBlock(x, y, z + 1) != Blocks.air && world.getBlock(x, y, z + 1) != ModBlocks.crystal_hardened && world.getBlock(x, y, z + 1) != ModBlocks.crystal_pulsar) { world.setBlock(x, y, z + 1, ModBlocks.crystal_virus); } - if(world.getBlock(x - 1, y, z) != ModBlocks.crystal_virus && world.getBlock(x - 1, y, z) != Blocks.air && world.getBlock(x - 1, y, z) != ModBlocks.crystal_hardened) { + if(world.getBlock(x - 1, y, z) != ModBlocks.crystal_virus && world.getBlock(x - 1, y, z) != Blocks.air && world.getBlock(x - 1, y, z) != ModBlocks.crystal_hardened && world.getBlock(x - 1, y, z) != ModBlocks.crystal_pulsar) { world.setBlock(x - 1, y, z, ModBlocks.crystal_virus); } - if(world.getBlock(x, y - 1, z) != ModBlocks.crystal_virus && world.getBlock(x, y - 1, z) != Blocks.air && world.getBlock(x, y - 1, z) != ModBlocks.crystal_hardened) { + if(world.getBlock(x, y - 1, z) != ModBlocks.crystal_virus && world.getBlock(x, y - 1, z) != Blocks.air && world.getBlock(x, y - 1, z) != ModBlocks.crystal_hardened && world.getBlock(x, y - 1, z) != ModBlocks.crystal_pulsar) { world.setBlock(x, y - 1, z, ModBlocks.crystal_virus); } - if(world.getBlock(x, y, z - 1) != ModBlocks.crystal_virus && world.getBlock(x, y, z - 1) != Blocks.air && world.getBlock(x, y, z - 1) != ModBlocks.crystal_hardened) { + if(world.getBlock(x, y, z - 1) != ModBlocks.crystal_virus && world.getBlock(x, y, z - 1) != Blocks.air && world.getBlock(x, y, z - 1) != ModBlocks.crystal_hardened && world.getBlock(x, y, z - 1) != ModBlocks.crystal_pulsar) { world.setBlock(x, y, z - 1, ModBlocks.crystal_virus); } world.setBlock(x, y, z, ModBlocks.crystal_hardened); @@ -49,12 +49,12 @@ public class CrystalVirus extends Block { @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - if((world.getBlock(x + 1, y, z) == Blocks.air || world.getBlock(x + 1, y, z) == ModBlocks.crystal_virus || world.getBlock(x + 1, y, z) == ModBlocks.crystal_hardened) && - (world.getBlock(x - 1, y, z) == Blocks.air || world.getBlock(x - 1, y, z) == ModBlocks.crystal_virus || world.getBlock(x - 1, y, z) == ModBlocks.crystal_hardened) && - (world.getBlock(x, y + 1, z) == Blocks.air || world.getBlock(x, y + 1, z) == ModBlocks.crystal_virus || world.getBlock(x, y + 1, z) == ModBlocks.crystal_hardened) && - (world.getBlock(x, y - 1, z) == Blocks.air || world.getBlock(x, y - 1, z) == ModBlocks.crystal_virus || world.getBlock(x, y - 1, z) == ModBlocks.crystal_hardened) && - (world.getBlock(x, y, z + 1) == Blocks.air || world.getBlock(x, y, z + 1) == ModBlocks.crystal_virus || world.getBlock(x, y, z + 1) == ModBlocks.crystal_hardened) && - (world.getBlock(x, y, z - 1) == Blocks.air || world.getBlock(x, y, z - 1) == ModBlocks.crystal_virus || world.getBlock(x, y, z - 1) == ModBlocks.crystal_hardened) && + if((world.getBlock(x + 1, y, z) == Blocks.air || world.getBlock(x + 1, y, z) == ModBlocks.crystal_virus || world.getBlock(x + 1, y, z) == ModBlocks.crystal_hardened || world.getBlock(x + 1, y, z) == ModBlocks.crystal_pulsar) && + (world.getBlock(x - 1, y, z) == Blocks.air || world.getBlock(x - 1, y, z) == ModBlocks.crystal_virus || world.getBlock(x - 1, y, z) == ModBlocks.crystal_hardened || world.getBlock(x - 1, y, z) == ModBlocks.crystal_pulsar) && + (world.getBlock(x, y + 1, z) == Blocks.air || world.getBlock(x, y + 1, z) == ModBlocks.crystal_virus || world.getBlock(x, y + 1, z) == ModBlocks.crystal_hardened || world.getBlock(x, y + 1, z) == ModBlocks.crystal_pulsar) && + (world.getBlock(x, y - 1, z) == Blocks.air || world.getBlock(x, y - 1, z) == ModBlocks.crystal_virus || world.getBlock(x, y - 1, z) == ModBlocks.crystal_hardened || world.getBlock(x, y - 1, z) == ModBlocks.crystal_pulsar) && + (world.getBlock(x, y, z + 1) == Blocks.air || world.getBlock(x, y, z + 1) == ModBlocks.crystal_virus || world.getBlock(x, y, z + 1) == ModBlocks.crystal_hardened || world.getBlock(x, y, z + 1) == ModBlocks.crystal_pulsar) && + (world.getBlock(x, y, z - 1) == Blocks.air || world.getBlock(x, y, z - 1) == ModBlocks.crystal_virus || world.getBlock(x, y, z - 1) == ModBlocks.crystal_hardened || world.getBlock(x, y, z - 1) == ModBlocks.crystal_pulsar) && !world.isRemote) { world.setBlock(x, y, z, ModBlocks.crystal_hardened); } diff --git a/com/hbm/blocks/bomb/LaunchPad.java b/com/hbm/blocks/bomb/LaunchPad.java index cbbfd4fdc..509a96d8c 100644 --- a/com/hbm/blocks/bomb/LaunchPad.java +++ b/com/hbm/blocks/bomb/LaunchPad.java @@ -137,156 +137,9 @@ public class LaunchPad extends BlockContainer implements IBomb { @Override public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) { - 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; - } - } + this.explode(p_149695_1_, x, y, z); } } @@ -380,6 +233,9 @@ public class LaunchPad extends BlockContainer implements IBomb { } else if(type == 16) { world.setBlock(x, y, z, ModBlocks.launch_pad_mirv); + } else if(type == 17) + { + world.setBlock(x, y, z, ModBlocks.launch_pad_anti); } else { world.setBlock(x, y, z, ModBlocks.launch_pad); } @@ -417,7 +273,7 @@ public class LaunchPad extends BlockContainer implements IBomb { 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) + if(entity.slots[1] != null && (entity.slots[1].getItem() == ModItems.designator || entity.slots[1].getItem() == ModItems.designator_range) && entity.slots[1].stackTagCompound != null) { int xCoord = entity.slots[1].stackTagCompound.getInteger("xCoord"); int zCoord = entity.slots[1].stackTagCompound.getInteger("zCoord"); @@ -561,6 +417,14 @@ public class LaunchPad extends BlockContainer implements IBomb { 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; } } diff --git a/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/com/hbm/entity/missile/EntityMissileAntiBallistic.java index bd584c559..f76a8c14a 100644 --- a/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -1,6 +1,8 @@ package com.hbm.entity.missile; import com.hbm.calc.EasyLocation; +import com.hbm.entity.particle.EntityDSmokeFX; +import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.explosion.ExplosionChaos; import net.minecraft.entity.Entity; @@ -33,7 +35,7 @@ public class EntityMissileAntiBallistic extends EntityMissileBase { { missile0 = ExplosionChaos.getHomingTarget(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25, this); } - if(missile0 != null && missile == null) + if(missile0 != null) { missile = new EasyLocation(missile0.posX, missile0.posY, missile0.posZ); this.phase = -1; @@ -58,7 +60,6 @@ public class EntityMissileAntiBallistic extends EntityMissileBase { } this.setDead(); missile0.setDead(); - missile0 = null; //ExplosionChaos.delMissiles(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 5, (Entity)this); } } @@ -174,6 +175,8 @@ public class EntityMissileAntiBallistic extends EntityMissileBase { break; } + this.worldObj.spawnEntityInWorld(new EntityDSmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); + if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) { if(!this.worldObj.isRemote) diff --git a/com/hbm/explosion/ExplosionChaos.java b/com/hbm/explosion/ExplosionChaos.java index bfbf7ae2a..66afdab07 100644 --- a/com/hbm/explosion/ExplosionChaos.java +++ b/com/hbm/explosion/ExplosionChaos.java @@ -90,6 +90,29 @@ public class ExplosionChaos { } } + public static void hardenVirus(World world, int x, int y, int z, int bombStartStrength) { + + int r = bombStartStrength; + 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 < r22) { + if (world.getBlock(X, Y, Z) == ModBlocks.crystal_virus) + world.setBlock(X, Y, Z, ModBlocks.crystal_hardened); + } + } + } + } + } + public static void spreadVirus(World world, int x, int y, int z, int bombStartStrength) { int r = bombStartStrength; diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index b31a39803..183f0ad0b 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -59,6 +59,7 @@ import com.hbm.items.special.ItemTeleLink; import com.hbm.items.special.WatzFuel; import com.hbm.items.tool.ItemCrateCaller; import com.hbm.items.tool.ItemDesingator; +import com.hbm.items.tool.ItemDesingatorRange; import com.hbm.items.tool.ItemDetonator; import com.hbm.items.tool.ItemMatch; import com.hbm.items.tool.ItemModBucket; @@ -532,6 +533,7 @@ public class ModItems { public static Item pellet_buckshot; public static Item designator; + public static Item designator_range; public static Item linker; public static Item missile_generic; @@ -1339,6 +1341,7 @@ public class ModItems { pellet_advanced = new WatzFuel(216000, 1000, 1.1F, 0, 0.995F, 0.99F).setUnlocalizedName("pellet_advanced").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":pellet_advanced").setMaxStackSize(1); designator = new ItemDesingator().setUnlocalizedName("designator").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":designator"); + designator_range = new ItemDesingatorRange().setUnlocalizedName("designator_range").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":designator_range"); missile_generic = new Item().setUnlocalizedName("missile_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_generic"); missile_anti_ballistic = new Item().setUnlocalizedName("missile_anti_ballistic").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_anti_ballistic"); missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_incendiary"); @@ -2188,11 +2191,12 @@ public class ModItems { //Computer Tools GameRegistry.registerItem(designator, designator.getUnlocalizedName()); + GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); //Missiles GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); - //GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); diff --git a/com/hbm/items/tool/ItemDesingatorRange.java b/com/hbm/items/tool/ItemDesingatorRange.java new file mode 100644 index 000000000..78cb9a915 --- /dev/null +++ b/com/hbm/items/tool/ItemDesingatorRange.java @@ -0,0 +1,64 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.bomb.LaunchPad; +import com.hbm.lib.Library; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class ItemDesingatorRange extends Item { + + @Override + public void onCreated(ItemStack p_77622_1_, World p_77622_2_, EntityPlayer p_77622_3_) { + p_77622_1_.stackTagCompound = new NBTTagCompound(); + p_77622_1_.stackTagCompound.setInteger("xCoord", 0); + p_77622_1_.stackTagCompound.setInteger("zCoord", 0); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + { + if(itemstack.stackTagCompound != null) + { + list.add("Target Coordinates:"); + list.add("X: " + String.valueOf(itemstack.stackTagCompound.getInteger("xCoord"))); + list.add("Z: " + String.valueOf(itemstack.stackTagCompound.getInteger("zCoord"))); + } else { + list.add("Please select a target."); + } + }@Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) + { + MovingObjectPosition pos = Library.rayTrace(player, 300, 1); + int x = pos.blockX; + int y = pos.blockY; + int z = pos.blockZ; + + if(!(world.getBlock(x, y, z) instanceof LaunchPad)) + { + if(stack.stackTagCompound != null) + { + stack.stackTagCompound.setInteger("xCoord", x); + stack.stackTagCompound.setInteger("zCoord", z); + } else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setInteger("xCoord", x); + stack.stackTagCompound.setInteger("zCoord", y); + } + if(world.isRemote) + { + player.addChatMessage(new ChatComponentText("Position set to X:" + x + ", Z:" + z)); + } + return stack; + } + + return stack; + } +} diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 6f8b996cd..57cd6c205 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -350,7 +350,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); GameRegistry.addRecipe(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', new ItemStack(Items.dye, 1, 4) }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', "plateDenseLead", 'L', "plateLead" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "CLC", "NAN", "CLC", 'N', "plateDenseLead", 'L', "plateLead", 'C', "plateCopper", 'A', ModItems.circuit_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', "ingotLead", 'P', ModItems.board_copper, 'C', ModItems.circuit_copper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', "ingotSteel", 'P', "plateTitanium", 'T', ModItems.coil_copper_torus })); GameRegistry.addRecipe(new ItemStack(ModItems.thermo_unit_endo, 1), new Object[] { "EEE", "ETE", "EEE", 'E', Item.getItemFromBlock(Blocks.ice), 'T', ModItems.thermo_unit_empty }); GameRegistry.addRecipe(new ItemStack(ModItems.thermo_unit_exo, 1), new Object[] { "LLL", "LTL", "LLL", 'L', Items.lava_bucket, 'T', ModItems.thermo_unit_empty }); @@ -609,6 +609,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.grenade_strong, 2), new Object[] { " G ", "SGS", " S ", 'G', ModItems.grenade_generic, 'S', Items.gunpowder }); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_frag, 2), new Object[] { " G ", "WGW", " K ", 'G', ModItems.grenade_generic, 'W', Item.getItemFromBlock(Blocks.planks), 'K', Item.getItemFromBlock(Blocks.gravel) }); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_fire, 2), new Object[] { " G ", "PFP", " P ", 'G', ModItems.grenade_generic, 'F', ModItems.grenade_frag, 'P', ModItems.powder_fire }); + GameRegistry.addRecipe(new ItemStack(ModItems.grenade_shrapnel, 2), new Object[] { " G ", "PFP", " P ", 'G', ModItems.grenade_generic, 'P', ModItems.pellet_buckshot, 'F', ModItems.grenade_strong }); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_cluster, 2), new Object[] { " G ", "PFP", " P ", 'G', ModItems.grenade_generic, 'P', ModItems.pellet_cluster, 'F', ModItems.grenade_frag }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.grenade_flare, 2), new Object[] { " G ", "DGD", " D ", 'G', ModItems.grenade_generic, 'D', "dustGlowstone" })); GameRegistry.addRecipe(new ItemStack(ModItems.grenade_electric, 2), new Object[] { " G ", "CSC", " C ", 'G', ModItems.grenade_generic, 'C', ModItems.circuit_red_copper, 'S', ModItems.grenade_strong }); @@ -647,6 +648,11 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_nuka, 1), new Object[] { ModItems.bottle_empty, Items.potionitem, Items.sugar, ModItems.powder_coal }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_cherry, 1), new Object[] { ModItems.bottle_empty, Items.potionitem, Items.sugar, Items.redstone }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_quantum, 1), new Object[] { ModItems.bottle_empty, Items.potionitem, Items.sugar, ModItems.trinitite }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.bottle2_empty, 6), new Object[] { " G ", "G G", "G G", 'G', "paneGlass" })); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_korl, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_copper }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_fritz, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_tungsten }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_korl_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_copper, ModItems.powder_strontium }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle2_fritz_special, 1), new Object[] { ModItems.bottle2_empty, Items.potionitem, Items.sugar, ModItems.powder_tungsten, ModItems.powder_thorium }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.syringe_empty, 6), new Object[] { "P", "C", "B", 'B', Item.getItemFromBlock(Blocks.iron_bars), 'C', ModItems.cell_empty, 'P', "plateIron" })); GameRegistry.addRecipe(new ItemStack(ModItems.syringe_antidote, 6), new Object[] { "SSS", "PMP", "SSS", 'S', ModItems.syringe_empty, 'P', Items.pumpkin_seeds, 'M', Items.milk_bucket }); @@ -699,7 +705,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.float_bomb), 1), new Object[] { "TGT", "TUT", "TGT", 'T', "plateTitanium", 'U', ModItems.levitation_unit, 'G', ModItems.circuit_gold })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.therm_endo), 1), new Object[] { "TGT", "TUT", "TGT", 'T', "plateTitanium", 'U', ModItems.thermo_unit_endo, 'G', ModItems.circuit_gold })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.therm_exo), 1), new Object[] { "TGT", "TUT", "TGT", 'T', "plateTitanium", 'U', ModItems.thermo_unit_exo, 'G', ModItems.circuit_gold })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.det_cord), 8), new Object[] { "TNT", "NGN", "TNT", 'T', "plateTitanium", 'N', "dustNiter", 'G', Items.gunpowder })); + 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 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 })); @@ -826,6 +833,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mask_of_infamy, 1), new Object[] { "III", "III", " I ", 'I', "plateIron" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.designator, 1), new Object[] { " A", "#B#", "#B#", '#', "plateIron", 'A', "plateSteel", 'B', ModItems.circuit_red_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.designator_range, 1), new Object[] { "RRD", "PIC", " P", 'P', "plateSteel", 'R', Items.redstone, 'C', ModItems.circuit_gold, 'D', ModItems.designator, 'I', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.linker, 1), new Object[] { "I I", "ICI", "GGG", 'I', "plateIron", 'G', "plateGold", 'C', ModItems.circuit_gold })); GameRegistry.addRecipe(new ItemStack(ModItems.schrabidium_hammer, 1), new Object[] { "BBB", "BBB", " S ", 'B', Item.getItemFromBlock(ModBlocks.block_schrabidium), 'S', Items.stick }); @@ -874,6 +882,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.crystal_horn, 1), new Object[] { ModItems.powder_neptunium, ModItems.powder_iodine, ModItems.powder_thorium, ModItems.powder_astatine, ModItems.powder_neodymium, ModItems.powder_caesium, ModBlocks.block_meteor, ModBlocks.gravel_obsidian, Items.water_bucket }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.crystal_charred, 1), new Object[] { ModItems.powder_strontium, ModItems.powder_cobalt, ModItems.powder_bromine, ModItems.powder_niobium, ModItems.powder_tennessine, ModItems.powder_cerium, ModBlocks.block_meteor, ModBlocks.block_aluminium, Items.water_bucket }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crystal_virus, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_sas3, 'T', "dustTungsten", 'H', ModItems.crystal_horn })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crystal_pulsar, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_uf6, 'T', "dustAluminum", 'H', ModItems.crystal_charred })); } public static void AddSmeltingRec() diff --git a/com/hbm/render/entity/RenderMissileGeneric.java b/com/hbm/render/entity/RenderMissileGeneric.java index f50034d58..b741a441a 100644 --- a/com/hbm/render/entity/RenderMissileGeneric.java +++ b/com/hbm/render/entity/RenderMissileGeneric.java @@ -2,6 +2,7 @@ package com.hbm.render.entity; import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBunkerBuster; import com.hbm.entity.missile.EntityMissileCluster; import com.hbm.entity.missile.EntityMissileGeneric; @@ -22,6 +23,7 @@ public class RenderMissileGeneric extends Render { private ResourceLocation missileIncendiaryTexture; private ResourceLocation missileClusterTexture; private ResourceLocation missileBusterTexture; + private ResourceLocation missileAATexture; public RenderMissileGeneric() { boyModel = AdvancedModelLoader.loadModel(objTesterModelRL); @@ -29,6 +31,7 @@ public class RenderMissileGeneric extends Render { missileIncendiaryTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileIncendiary.png"); missileClusterTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileCluster.png"); missileBusterTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileBuster.png"); + missileAATexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileV2.png"); } @Override @@ -47,6 +50,8 @@ public class RenderMissileGeneric extends Render { bindTexture(missileClusterTexture); if(p_76986_1_ instanceof EntityMissileBunkerBuster) bindTexture(missileBusterTexture); + if(p_76986_1_ instanceof EntityMissileAntiBallistic) + bindTexture(missileAATexture); boyModel.renderAll(); GL11.glPopMatrix(); } diff --git a/com/hbm/tileentity/TileEntityIGenerator.java b/com/hbm/tileentity/TileEntityIGenerator.java index 85af6b469..ca6756f54 100644 --- a/com/hbm/tileentity/TileEntityIGenerator.java +++ b/com/hbm/tileentity/TileEntityIGenerator.java @@ -218,6 +218,15 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, public void updateEntity() { if (!worldObj.isRemote) { + + age++; + if(age >= 20) + { + age = 0; + } + + if(age == 9 || age == 19) + ffgeuaInit(); if(burn > 0) { burn--; @@ -242,6 +251,8 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, torque += 5; } } + + heat += (7 * this.canLocateRTG()); for(int i = 0; i < this.canLocateThermalElement(); i++) { if(heat >= 10) { @@ -290,6 +301,7 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, doFuelTask(); doLubeTask(); doWaterTask(); + doBatteryTask(); } } @@ -445,6 +457,34 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, } } } + + public void doBatteryTask() { + if(power - 100 >= 0 && slots[15] != null && slots[15].getItem() == ModItems.battery_generic && slots[15].getItemDamage() > 0) + { + power -= 100; + slots[15].setItemDamage(slots[15].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[15] != null && slots[15].getItem() == ModItems.battery_advanced && slots[15].getItemDamage() > 0) + { + power -= 100; + slots[15].setItemDamage(slots[15].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[15] != null && slots[15].getItem() == ModItems.battery_schrabidium && slots[15].getItemDamage() > 0) + { + power -= 100; + slots[15].setItemDamage(slots[15].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[15] != null && slots[15].getItem() == ModItems.factory_core_titanium && slots[15].getItemDamage() > 0) + { + power -= 100; + slots[15].setItemDamage(slots[15].getItemDamage() - 1); + } + if(power - 100 >= 0 && slots[15] != null && slots[15].getItem() == ModItems.factory_core_advanced && slots[15].getItemDamage() > 0) + { + power -= 100; + slots[15].setItemDamage(slots[15].getItemDamage() - 1); + } + } public int canLocateThermalElement() { @@ -458,6 +498,18 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, return thermo; } + public int canLocateRTG() { + + int rtg = 0; + + for(int i = 0; i < slots.length; i++) { + if(slots[i] != null && slots[i].getItem() == ModItems.pellet_rtg) + rtg ++; + } + + return rtg; + } + public boolean hasLimiter() { for(int i = 0; i < slots.length; i++) { @@ -582,12 +634,23 @@ public class TileEntityIGenerator extends TileEntity implements ISidedInventory, @Override public void ffgeuaInit() { - ffgeua(this.xCoord, this.yCoord + 1, this.zCoord, getTact()); - ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact()); - ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact()); - ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact()); - ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact()); - ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact()); + int i = this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord); + if(i == 5) { + ffgeua(this.xCoord + 3, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord - 4, this.yCoord, this.zCoord, getTact()); + } + if(i == 3) { + ffgeua(this.xCoord, this.yCoord, this.zCoord + 3, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 4, getTact()); + } + if(i == 4) { + ffgeua(this.xCoord + 4, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord - 3, this.yCoord, this.zCoord, getTact()); + } + if(i == 2) { + ffgeua(this.xCoord, this.yCoord, this.zCoord + 4, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 3, getTact()); + } } public boolean getTact() {