From ece74681ca385ae956ae3b3ca6dc7d48e17890ae Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 10 Sep 2021 15:16:30 +0200 Subject: [PATCH] coal stat for items, porous stone, volcano crash fix --- src/main/java/com/hbm/blocks/ModBlocks.java | 27 ++++++---- .../com/hbm/blocks/bomb/BlockVolcano.java | 2 +- .../java/com/hbm/blocks/bomb/NukeCustom.java | 18 +++---- .../java/com/hbm/blocks/bomb/NukeFleija.java | 12 +---- .../com/hbm/blocks/bomb/NukePrototype.java | 12 +---- .../com/hbm/blocks/bomb/NukeSolinium.java | 13 +---- .../com/hbm/blocks/generic/BlockPorous.java | 49 ++++++++++++++++++ .../entity/grenade/EntityGrenadeASchrab.java | 15 +----- .../entity/logic/EntityNukeExplosionMK3.java | 37 ++++++++++++- .../missile/EntityMissileSchrabidium.java | 11 +--- .../entity/projectile/EntityBulletBase.java | 23 +++----- .../projectile/EntityExplosiveBeam.java | 15 ++---- .../hbm/entity/projectile/EntityModBeam.java | 24 +-------- .../java/com/hbm/interfaces/IItemHazard.java | 9 +++- .../com/hbm/inventory/MachineRecipes.java | 15 +----- src/main/java/com/hbm/items/ModItems.java | 18 +++---- .../java/com/hbm/items/special/ItemDrop.java | 15 +----- .../java/com/hbm/items/weapon/GunB92.java | 29 ++++------- .../java/com/hbm/items/weapon/GunB93.java | 16 ++---- .../com/hbm/items/weapon/WeaponizedCell.java | 26 +++------- .../java/com/hbm/lib/HbmChestContents.java | 6 +-- src/main/java/com/hbm/lib/HbmWorldGen.java | 6 ++- .../com/hbm/modules/ItemHazardModule.java | 25 ++++++--- .../tileentity/machine/TileEntityCore.java | 26 +++------- .../machine/TileEntityWatzCore.java | 11 +--- .../hbm/textures/blocks/stone_porous.png | Bin 0 -> 731 bytes 26 files changed, 200 insertions(+), 260 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockPorous.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/stone_porous.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index b2c323e15..d117b407b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -126,6 +126,8 @@ public class ModBlocks { public static Block stone_depth_nether; public static Block ore_depth_nether_neodymium; + public static Block stone_porous; + public static Block depth_brick; public static Block depth_tiles; public static Block depth_nether_brick; @@ -1200,7 +1202,7 @@ public class ModBlocks { ore_schrabidium = new BlockOre(Material.rock, 0.1F, 0.5F).setBlockName("ore_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":ore_schrabidium"); ore_beryllium = new BlockGeneric(Material.rock).setBlockName("ore_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_beryllium"); ore_lignite = new BlockOre(Material.rock).setBlockName("ore_lignite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_lignite"); - ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos().toBlock().setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos"); + ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos(1).toBlock().setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos"); ore_coal_oil = new BlockCoalOil(Material.rock).setBlockName("ore_coal_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil"); ore_coal_oil_burning = new BlockCoalBurning(Material.rock).setBlockName("ore_coal_oil_burning").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil_burning"); @@ -1236,7 +1238,7 @@ public class ModBlocks { ore_gneiss_uranium = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_gneiss_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium"); ore_gneiss_uranium_scorched = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_gneiss_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium_scorched"); ore_gneiss_copper = new BlockOre(Material.rock).setBlockName("ore_gneiss_copper").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_copper"); - ore_gneiss_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos().toBlock().setBlockName("ore_gneiss_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_asbestos"); + ore_gneiss_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos(1).toBlock().setBlockName("ore_gneiss_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_asbestos"); ore_gneiss_lithium = new BlockOre(Material.rock).setBlockName("ore_gneiss_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_lithium"); ore_gneiss_schrabidium = new BlockOre(Material.rock).setBlockName("ore_gneiss_schrabidium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_schrabidium"); ore_gneiss_rare = new BlockOre(Material.rock).setBlockName("ore_gneiss_rare").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_rare"); @@ -1261,6 +1263,8 @@ public class ModBlocks { stone_depth_nether = new BlockDepth().setBlockName("stone_depth_nether").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_depth_nether"); ore_depth_nether_neodymium = new BlockDepthOre().setBlockName("ore_depth_nether_neodymium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_depth_nether_neodymium"); + + stone_porous = new BlockPorous().setBlockName("stone_porous").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":stone_porous"); basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); basalt_sulfur = new BlockOre(Material.rock).setBlockName("basalt_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_sulfur"); @@ -1352,7 +1356,7 @@ public class ModBlocks { block_yellowcake = new BlockHazardFalling().makeBeaconable().addRadiation(ItemHazard.yc * ItemHazard.block).toBlock().setBlockName("block_yellowcake").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_yellowcake"); block_insulator = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_insulator_top").setBlockName("block_insulator").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_insulator_side"); block_fiberglass = new BlockRotatablePillar(Material.cloth, RefStrings.MODID + ":block_fiberglass_top").setBlockName("block_fiberglass").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); - block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).addAsbestos().toBlock().setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); + block_asbestos = new BlockOutgas(Material.cloth, true, 5, true).addAsbestos(1).toBlock().setBlockName("block_asbestos").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeCloth).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_asbestos"); block_cobalt = new BlockBeaconable(Material.iron).setBlockName("block_cobalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_cobalt"); block_lithium = new BlockLithium(Material.iron).addHydroReactivity().toBlock().setBlockName("block_lithium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_lithium"); block_zirconium = new BlockBeaconable(Material.iron).setBlockName("block_zirconium").setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_zirconium"); @@ -1437,7 +1441,7 @@ public class ModBlocks { brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); - brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos().toBlock().setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); + brick_asbestos = new BlockOutgas(Material.rock, true, 5, true).addAsbestos(1).toBlock().setBlockName("brick_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_asbestos"); ducrete_smooth = new BlockGeneric(Material.rock).setBlockName("ducrete_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(20.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":ducrete"); @@ -1447,7 +1451,7 @@ public class ModBlocks { tile_lab = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab"); tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); - tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).addAsbestos().toBlock().setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); + tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).addAsbestos(1).toBlock().setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); block_meteor = new BlockOre(Material.rock).setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); block_meteor_cobble = new BlockOre(Material.rock).setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); @@ -1555,12 +1559,12 @@ public class ModBlocks { sand_boron_layer = new BlockLayering(Material.sand).setBlockName("sand_boron_layer").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setLightOpacity(0).setBlockTextureName(RefStrings.MODID + ":sand_boron"); sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); - sellafield_0 = new BlockOre(Material.rock, 0.5F, 10F).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); - sellafield_1 = new BlockOre(Material.rock, 1F, 15F).setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); - sellafield_2 = new BlockOre(Material.rock, 2.5F, 25F).setBlockName("sellafield_2").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_2"); - sellafield_3 = new BlockOre(Material.rock, 4F, 40F).setBlockName("sellafield_3").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_3"); - sellafield_4 = new BlockOre(Material.rock, 5, 50F).setBlockName("sellafield_4").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_4"); - sellafield_core = new BlockOre(Material.rock, 10F, 150F).setBlockName("sellafield_core").setStepSound(Block.soundTypeStone).setHardness(10.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_core"); + sellafield_0 = new BlockHazard(Material.rock).addRadiation(0.5F).toBlock().setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); + sellafield_1 = new BlockHazard(Material.rock).addRadiation(1F).toBlock().setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); + sellafield_2 = new BlockHazard(Material.rock).addRadiation(2.5F).toBlock().setBlockName("sellafield_2").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_2"); + sellafield_3 = new BlockHazard(Material.rock).addRadiation(4F).toBlock().setBlockName("sellafield_3").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_3"); + sellafield_4 = new BlockHazard(Material.rock).addRadiation(5F).toBlock().setBlockName("sellafield_4").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_4"); + sellafield_core = new BlockHazard(Material.rock).addRadiation(10F).toBlock().setBlockName("sellafield_core").setStepSound(Block.soundTypeStone).setHardness(10.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_core"); geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); @@ -2227,6 +2231,7 @@ public class ModBlocks { GameRegistry.registerBlock(crystal_trixite, crystal_trixite.getUnlocalizedName()); //Stone Variants + GameRegistry.registerBlock(stone_porous, stone_porous.getUnlocalizedName()); GameRegistry.registerBlock(stone_gneiss, stone_gneiss.getUnlocalizedName()); GameRegistry.registerBlock(gneiss_brick, gneiss_brick.getUnlocalizedName()); GameRegistry.registerBlock(gneiss_tile, gneiss_tile.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index 6bfbd676e..639e11ba8 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -72,7 +72,7 @@ public class BlockVolcano extends Block { explosion.addAllAttrib(attribs); explosion.explode(); - ExplosionNT explosion2 = new ExplosionNT(world, null, x + 0.5 + rand.nextGaussian() * 3, rand.nextInt(y), z + 0.5 + rand.nextGaussian() * 3, 10); + ExplosionNT explosion2 = new ExplosionNT(world, null, x + 0.5 + rand.nextGaussian() * 3, rand.nextInt(y + 1), z + 0.5 + rand.nextGaussian() * 3, 10); explosion2.addAllAttrib(attribs); explosion2.explode(); } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index e7bf38641..c6f0ded70 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -151,19 +151,13 @@ public class NukeCustom extends BlockContainer implements IBomb { schrab += amat / 2 + hydro / 4 + nuke / 8 + tnt / 16; schrab = Math.min(schrab, maxSchrab); + + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, (int) schrab)); + + EntityCloudFleija cloud = new EntityCloudFleija(worldObj, (int) schrab); + cloud.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); + worldObj.spawnEntityInWorld(cloud); - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(worldObj); - entity.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - entity.destructionRange = (int) schrab; - entity.speed = BombConfig.blastSpeed; - entity.coefficient = 1.0F; - entity.waste = false; - worldObj.spawnEntityInWorld(entity); - - EntityCloudFleija cloud = new EntityCloudFleija(worldObj, (int)schrab); - cloud.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); - worldObj.spawnEntityInWorld(cloud); - /// ANTIMATTER /// } else if(amat > 0) { diff --git a/src/main/java/com/hbm/blocks/bomb/NukeFleija.java b/src/main/java/com/hbm/blocks/bomb/NukeFleija.java index 7311d4d3d..091b59cb0 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeFleija.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeFleija.java @@ -140,17 +140,7 @@ public class NukeFleija 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 = BombConfig.blastSpeed; - entity.coefficient = 1.0F; - entity.waste = false; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, x + 0.5, y + 0.5, z + 0.5, r)); EntityCloudFleija cloud = new EntityCloudFleija(world, r); cloud.posX = x; diff --git a/src/main/java/com/hbm/blocks/bomb/NukePrototype.java b/src/main/java/com/hbm/blocks/bomb/NukePrototype.java index bbb80e389..bd1d8bca3 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukePrototype.java +++ b/src/main/java/com/hbm/blocks/bomb/NukePrototype.java @@ -153,17 +153,7 @@ public class NukePrototype 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 = BombConfig.blastSpeed; - entity.coefficient = 1.0F; - entity.waste = false; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, x + 0.5, y + 0.5, z + 0.5, r)); EntityCloudFleija cloud = new EntityCloudFleija(world, r); cloud.posX = x; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java b/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java index c8f1a348f..761cfab5f 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeSolinium.java @@ -138,18 +138,7 @@ public class NukeSolinium extends BlockContainer implements IBomb { if (!world.isRemote) { 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 = BombConfig.blastSpeed; - entity.coefficient = 1.0F; - entity.waste = false; - entity.extType = 1; - - world.spawnEntityInWorld(entity); + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, x + 0.5, y + 0.5, z + 0.5, r).makeSol()); EntityCloudSolinium cloud = new EntityCloudSolinium(world, r); cloud.posX = x; diff --git a/src/main/java/com/hbm/blocks/generic/BlockPorous.java b/src/main/java/com/hbm/blocks/generic/BlockPorous.java new file mode 100644 index 000000000..dceb64422 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPorous.java @@ -0,0 +1,49 @@ +package com.hbm.blocks.generic; + +import java.util.Random; + +import com.hbm.handler.radiation.ChunkRadiationManager; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStone; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class BlockPorous extends BlockStone { + + public BlockPorous() { + super(); + this.setHardness(1.5F); //stone tier + this.setResistance(300.0F); //ha + } + + @Override + protected ItemStack createStackedBlock(int meta) { + //in theory this should keep the block silk-harvestable, but dropping smooth stone instead + return new ItemStack(Blocks.stone); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public int tickRate(World world) { + return 90 + world.rand.nextInt(20); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + ChunkRadiationManager.proxy.decrementRad(world, x, y, z, 10F); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public boolean isReplaceableOreGen(World world, int x, int y, int z, Block target) { + return target == this || target == Blocks.stone; + } +} diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeASchrab.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeASchrab.java index 7a171ca0c..bd8804de4 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeASchrab.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeASchrab.java @@ -25,19 +25,8 @@ public class EntityGrenadeASchrab extends EntityGrenadeBase { public void explode() { if (!this.worldObj.isRemote) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, - this.worldObj.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = BombConfig.aSchrabRadius; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0F, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius)); EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); cloud.posX = this.posX; diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 5dd110c2b..ef15944cb 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -2,6 +2,7 @@ package com.hbm.entity.logic; import org.apache.logging.log4j.Level; +import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.config.GeneralConfig; import com.hbm.entity.effect.EntityFalloutRain; @@ -104,7 +105,7 @@ public class EntityNukeExplosionMK3 extends Entity { } - public EntityNukeExplosionMK3(World p_i1582_1_) { + private EntityNukeExplosionMK3(World p_i1582_1_) { super(p_i1582_1_); } @@ -187,4 +188,38 @@ public class EntityNukeExplosionMK3 extends Entity { @Override protected void entityInit() { } + + public static EntityNukeExplosionMK3 statFacFleija(World world, double x, double y, double z, int range) { + + EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(world); + entity.posX = x; + entity.posY = y; + entity.posZ = z; + entity.destructionRange = range; + entity.speed = BombConfig.blastSpeed; + entity.coefficient = 1.0F; + entity.waste = false; + + if(range > 50) { + + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = (int)y + 15; k > 5; k--) { + + if(world.getBlock((int)x + i * 15, k, (int)z + j * 15) == ModBlocks.stone_porous) { + entity.destructionRange = 50; + return entity; + } + } + } + } + } + + return entity; + } + + public EntityNukeExplosionMK3 makeSol() { + this.extType = 1; + return this; + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java index ea70c1adc..9e473a717 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileSchrabidium.java @@ -24,16 +24,7 @@ public class EntityMissileSchrabidium extends EntityMissileBaseAdvanced { @Override public void onImpact() { if(!this.worldObj.isRemote) { - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = BombConfig.aSchrabRadius; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, BombConfig.aSchrabRadius)); EntityCloudFleija cloud = new EntityCloudFleija(this.worldObj, BombConfig.aSchrabRadius); cloud.posX = this.posX; diff --git a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java index d3f079f3d..e389346c8 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBulletBase.java @@ -5,6 +5,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.RedBarrel; +import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.effect.EntityEMPBlast; import com.hbm.entity.logic.EntityNukeExplosionMK3; @@ -476,23 +477,13 @@ public class EntityBulletBase extends Entity implements IProjectile { if(config.rainbow > 0 && !worldObj.isRemote) { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, config.rainbow)); - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = config.rainbow; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); - cloud.posX = this.posX; - cloud.posY = this.posY; - cloud.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(cloud); + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, config.rainbow); + cloud.posX = this.posX; + cloud.posY = this.posY; + cloud.posZ = this.posZ; + this.worldObj.spawnEntityInWorld(cloud); } if(config.nuke > 0 && !worldObj.isRemote) { diff --git a/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java b/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java index b451e0b73..ef99e9107 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityExplosiveBeam.java @@ -2,6 +2,7 @@ package com.hbm.entity.projectile; import java.util.List; +import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.logic.EntityNukeExplosionMK3; @@ -468,19 +469,9 @@ public class EntityExplosiveBeam extends Entity implements IProjectile private void explode() { if(!worldObj.isRemote) { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, - "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, 10)); - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = 10; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, 10); cloud.posX = this.posX; diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index f2cd95857..69697dcaa 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -430,17 +430,7 @@ public class EntityModBeam extends Entity implements IProjectile { ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 10, true, false, false); } else if(mode == 2) { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = 10; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, 10)); EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, 10); cloud.posX = this.posX; @@ -449,17 +439,7 @@ public class EntityModBeam extends Entity implements IProjectile { this.worldObj.spawnEntityInWorld(cloud); } else if(mode == 3) { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(this.worldObj); - entity.posX = this.posX; - entity.posY = this.posY; - entity.posZ = this.posZ; - entity.destructionRange = 20; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - this.worldObj.spawnEntityInWorld(entity); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, posX, posY, posZ, 20)); EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(this.worldObj, 20); cloud.posX = this.posX; diff --git a/src/main/java/com/hbm/interfaces/IItemHazard.java b/src/main/java/com/hbm/interfaces/IItemHazard.java index a89277278..7309c2f10 100644 --- a/src/main/java/com/hbm/interfaces/IItemHazard.java +++ b/src/main/java/com/hbm/interfaces/IItemHazard.java @@ -24,8 +24,13 @@ public interface IItemHazard { return this; } - public default IItemHazard addAsbestos() { - this.getModule().addAsbestos(); + public default IItemHazard addAsbestos(int asbestos) { + this.getModule().addAsbestos(asbestos); + return this; + } + + public default IItemHazard addCoal(int coal) { + this.getModule().addCoal(coal); return this; } diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index b622dc1c0..838aeb634 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -42,6 +42,7 @@ public class MachineRecipes { return getFurnaceOutput(item, item2); } + @Spaghetti("i am an affront to god and i desire to be cremated") public static ItemStack getFurnaceOutput(ItemStack item, ItemStack item2) { if(item == null || item2 == null) @@ -59,16 +60,6 @@ public class MachineRecipes { return new ItemStack(ModItems.neutron_reflector, 2); } - if (mODE(item, new String[] {"ingotLead", "dustLead"}) && mODE(item2, new String[] {"ingotCopper", "dustCopper"}) - || mODE(item, new String[] {"ingotCopper", "dustCopper"}) && mODE(item2, new String[] {"ingotLead", "dustLead"})) { - return new ItemStack(ModItems.neutron_reflector, 4); - } - - if (mODE(item, "plateLead") && mODE(item2, "plateCopper") - || mODE(item, "plateCopper") && mODE(item2, "plateLead")) { - return new ItemStack(ModItems.neutron_reflector, 1); - } - if (mODE(item, new String[] {"ingotIron", "dustIron"}) && mODE(item2, new String[] {"gemCoal", "dustCoal"}) || mODE(item, new String[] {"gemCoal", "dustCoal"}) && mODE(item2, new String[] {"ingotIron", "dustIron"})) { return new ItemStack(ModItems.ingot_steel, 2); @@ -771,10 +762,6 @@ public class MachineRecipes { try { recipes.put(new ItemStack[] { new ItemStack(Items.iron_ingot), new ItemStack(Items.coal) }, getFurnaceOutput(new ItemStack(Items.iron_ingot), new ItemStack(Items.coal)).copy()); - recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_lead), new ItemStack(ModItems.ingot_copper) }, - getFurnaceOutput(new ItemStack(ModItems.ingot_lead), new ItemStack(ModItems.ingot_copper)).copy()); - recipes.put(new ItemStack[] { new ItemStack(ModItems.plate_lead), new ItemStack(ModItems.plate_copper) }, - getFurnaceOutput(new ItemStack(ModItems.plate_lead), new ItemStack(ModItems.plate_copper)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_tungsten), new ItemStack(Items.coal) }, getFurnaceOutput(new ItemStack(ModItems.ingot_tungsten), new ItemStack(Items.coal)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_copper), new ItemStack(Items.redstone) }, diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0cda754fe..cba396605 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2593,8 +2593,8 @@ public class ModItems { ingot_saturnite = new ItemCustomLore().setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); plate_saturnite = new ItemCustomLore().setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); - ingot_asbestos = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); - powder_asbestos = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); + ingot_asbestos = new ItemHazard().addAsbestos(1).toItem().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); + powder_asbestos = new ItemHazard().addAsbestos(5).toItem().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); nugget_zirconium = new ItemCustomLore().setUnlocalizedName("nugget_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_zirconium"); nugget_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); @@ -2622,7 +2622,7 @@ public class ModItems { coke = new Item().setUnlocalizedName("coke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coke"); lignite = new Item().setUnlocalizedName("lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":lignite"); briquette_lignite = new Item().setUnlocalizedName("briquette_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":briquette_lignite"); - powder_lignite = new Item().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); + powder_lignite = new ItemHazard().addCoal(10).toItem().setUnlocalizedName("powder_lignite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lignite"); coal_infernal = new Item().setUnlocalizedName("coal_infernal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coal_infernal"); cinnebar = new Item().setUnlocalizedName("cinnebar").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cinnebar"); @@ -2727,8 +2727,8 @@ public class ModItems { powder_i131_tiny = new ItemHazard().addRadiation(ItemHazard.i131 * ItemHazard.powder_tiny).addFire(15).toItem().setUnlocalizedName("powder_i131_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_i131_tiny"); powder_xe135 = new ItemHazard().addRadiation(ItemHazard.xe135 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_xe135").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135"); powder_xe135_tiny = new ItemHazard().addRadiation(ItemHazard.xe135 * ItemHazard.powder_tiny).addFire(15).toItem().setUnlocalizedName("powder_xe135_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_xe135_tiny"); - powder_cs137 = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addFire(5).toItem().setUnlocalizedName("powder_cs137").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137"); - powder_cs137_tiny = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addFire(5).toItem().setUnlocalizedName("powder_cs137_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137_tiny"); + powder_cs137 = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addHydroReactivity().addFire(5).toItem().setUnlocalizedName("powder_cs137").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137"); + powder_cs137_tiny = new ItemHazard().addRadiation(ItemHazard.cs137 * ItemHazard.powder).addHydroReactivity().addFire(5).toItem().setUnlocalizedName("powder_cs137_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cs137_tiny"); powder_au198 = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_au198"); powder_at209 = new ItemHazard().addRadiation(ItemHazard.at209 * ItemHazard.powder).addFire(15).addBlinding().toItem().setUnlocalizedName("powder_at209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_at209"); powder_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.powder, true, true).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); @@ -2746,8 +2746,8 @@ public class ModItems { fallout = new ItemHazard().addRadiation(ItemHazard.fo * ItemHazard.powder).toItem().setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout"); powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy"); powder_tcalloy = new Item().setUnlocalizedName("powder_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tcalloy"); - powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); - powder_coal_tiny = new Item().setUnlocalizedName("powder_coal_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal_tiny"); + powder_coal = new ItemHazard().addCoal(10).toItem().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal"); + powder_coal_tiny = new ItemHazard().addCoal(1).toItem().setUnlocalizedName("powder_coal_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal_tiny"); powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel"); powder_diamond = new Item().setUnlocalizedName("powder_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_diamond"); powder_emerald = new Item().setUnlocalizedName("powder_emerald").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_emerald"); @@ -2765,7 +2765,7 @@ public class ModItems { powder_thorium = new ItemHazard().addRadiation(ItemHazard.th232 * ItemHazard.powder).toItem().setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); powder_neodymium = new ItemCustomLore().setUnlocalizedName("powder_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neodymium"); powder_astatine = new ItemCustomLore().setUnlocalizedName("powder_astatine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_astatine"); - powder_caesium = new ItemCustomLore().setUnlocalizedName("powder_caesium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_caesium"); + powder_caesium = new ItemHazard().addHydroReactivity().addFire(3).toItem().setUnlocalizedName("powder_caesium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_caesium"); powder_australium = new ItemCustomLore().setUnlocalizedName("powder_australium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_australium"); powder_weidanium = new ItemCustomLore().setUnlocalizedName("powder_weidanium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_weidanium"); powder_reiium = new ItemCustomLore().setUnlocalizedName("powder_reiium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_reiium"); @@ -2805,7 +2805,7 @@ public class ModItems { powder_magic = new Item().setUnlocalizedName("powder_magic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_magic"); powder_cloud = new Item().setUnlocalizedName("powder_cloud").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_cloud"); powder_balefire = new ItemHazard().addRadiation(500F).addFire(5).toItem().setUnlocalizedName("powder_balefire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_balefire"); - powder_coltan_ore = new ItemHazard().addAsbestos().toItem().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore"); + powder_coltan_ore = new ItemHazard().addAsbestos(3).toItem().setUnlocalizedName("powder_coltan_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan_ore"); powder_coltan = new Item().setUnlocalizedName("powder_coltan").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coltan"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); diff --git a/src/main/java/com/hbm/items/special/ItemDrop.java b/src/main/java/com/hbm/items/special/ItemDrop.java index 232a93f81..346057e97 100644 --- a/src/main/java/com/hbm/items/special/ItemDrop.java +++ b/src/main/java/com/hbm/items/special/ItemDrop.java @@ -98,19 +98,8 @@ public class ItemDrop extends Item { } if (stack.getItem() != null && stack.getItem() == ModItems.cell_anti_schrabidium && WeaponConfig.dropCell) { if (!entityItem.worldObj.isRemote) { - entityItem.worldObj.playSoundEffect(entityItem.posX, entityItem.posY, entityItem.posZ, - "random.explode", 100.0f, entityItem.worldObj.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(entityItem.worldObj); - entity.posX = entityItem.posX; - entity.posY = entityItem.posY; - entity.posZ = entityItem.posZ; - entity.destructionRange = BombConfig.aSchrabRadius; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - entityItem.worldObj.spawnEntityInWorld(entity); + entityItem.worldObj.playSoundEffect(entityItem.posX, entityItem.posY, entityItem.posZ, "random.explode", 100.0F, entityItem.worldObj.rand.nextFloat() * 0.1F + 0.9F); + entityItem.worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(entityItem.worldObj, entityItem.posX, entityItem.posY, entityItem.posZ, BombConfig.aSchrabRadius)); EntityCloudFleija cloud = new EntityCloudFleija(entityItem.worldObj, BombConfig.aSchrabRadius); cloud.posX = entityItem.posX; diff --git a/src/main/java/com/hbm/items/weapon/GunB92.java b/src/main/java/com/hbm/items/weapon/GunB92.java index 41fcfbcd5..73e11c223 100644 --- a/src/main/java/com/hbm/items/weapon/GunB92.java +++ b/src/main/java/com/hbm/items/weapon/GunB92.java @@ -106,27 +106,16 @@ public class GunB92 extends Item { setPower(stack, 0); - if(!world.isRemote) { - world.playSoundEffect(entity.posX, entity.posY, entity.posZ, - "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); + if(!world.isRemote) { + world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, entity.posX, entity.posY, entity.posZ, 50)); - EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(world); - exp.posX = entity.posX; - exp.posY = entity.posY; - exp.posZ = entity.posZ; - exp.destructionRange = 50; - exp.speed = 25; - exp.coefficient = 1.0F; - exp.waste = false; - - world.spawnEntityInWorld(exp); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 50); - cloud.posX = entity.posX; - cloud.posY = entity.posY; - cloud.posZ = entity.posZ; - world.spawnEntityInWorld(cloud); - } + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 50); + cloud.posX = entity.posX; + cloud.posY = entity.posY; + cloud.posZ = entity.posZ; + world.spawnEntityInWorld(cloud); + } } } } diff --git a/src/main/java/com/hbm/items/weapon/GunB93.java b/src/main/java/com/hbm/items/weapon/GunB93.java index 70998acb3..69ad378cd 100644 --- a/src/main/java/com/hbm/items/weapon/GunB93.java +++ b/src/main/java/com/hbm/items/weapon/GunB93.java @@ -94,19 +94,9 @@ public class GunB93 extends Item { setPower(stack, 0); if(!world.isRemote) { - world.playSoundEffect(entity.posX, entity.posY, entity.posZ, - "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(world); - exp.posX = entity.posX; - exp.posY = entity.posY; - exp.posZ = entity.posZ; - exp.destructionRange = 50; - exp.speed = 25; - exp.coefficient = 1.0F; - exp.waste = false; - - world.spawnEntityInWorld(exp); + world.playSoundEffect(entity.posX, entity.posY, entity.posZ, "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); + + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, entity.posX, entity.posY, entity.posZ, 50)); EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 50); cloud.posX = entity.posX; diff --git a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java index 7d7593484..5bfddb178 100644 --- a/src/main/java/com/hbm/items/weapon/WeaponizedCell.java +++ b/src/main/java/com/hbm/items/weapon/WeaponizedCell.java @@ -25,24 +25,14 @@ public class WeaponizedCell extends Item { if(WeaponConfig.dropStar) { - world.playSoundEffect(item.posX, item.posY, item.posZ, "random.explode", 100.0f, world.rand.nextFloat() * 0.1F + 0.9F); - - EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(world); - exp.posX = item.posX; - exp.posY = item.posY; - exp.posZ = item.posZ; - exp.destructionRange = 100; - exp.speed = 25; - exp.coefficient = 1.0F; - exp.waste = false; - - world.spawnEntityInWorld(exp); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 100); - cloud.posX = item.posX; - cloud.posY = item.posY; - cloud.posZ = item.posZ; - world.spawnEntityInWorld(cloud); + world.playSoundEffect(item.posX, item.posY, item.posZ, "random.explode", 100.0F, world.rand.nextFloat() * 0.1F + 0.9F); + world.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(world, item.posX, item.posY, item.posZ, 100)); + + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, 100); + cloud.posX = item.posX; + cloud.posY = item.posY; + cloud.posZ = item.posZ; + world.spawnEntityInWorld(cloud); } item.setDead(); diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index 772d21ad9..c0f444084 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -250,7 +250,7 @@ public class HbmChestContents { private static WeightedRandomChestContent[] vault2 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.ingot_desh, 0, 2, 6, 1), - new WeightedRandomChestContent(ItemBattery.getFullBattery(ModItems.battery_advanced_cell_4), 1, 1, 1), + new WeightedRandomChestContent(ModItems.battery_advanced_cell_4, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.powder_desh_mix, 0, 1, 5, 1), new WeightedRandomChestContent(Items.diamond, 0, 3, 6, 1), new WeightedRandomChestContent(ModItems.ammo_nuke, 0, 1, 1, 1), @@ -266,7 +266,7 @@ public class HbmChestContents { private static WeightedRandomChestContent[] vault3 = new WeightedRandomChestContent[] { new WeightedRandomChestContent(ModItems.ingot_desh, 0, 6, 16, 1), - new WeightedRandomChestContent(ItemBattery.getFullBattery(ModItems.battery_lithium), 1, 1, 1), + new WeightedRandomChestContent(ModItems.battery_lithium, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.powder_power, 0, 1, 5, 1), new WeightedRandomChestContent(ModItems.sat_chip, 0, 1, 1, 1), new WeightedRandomChestContent(Items.diamond, 0, 5, 9, 1), @@ -297,7 +297,7 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.nuke_starter_kit, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.weaponized_starblaster_cell, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.warhead_mirv, 0, 1, 1, 1), - new WeightedRandomChestContent(ItemBattery.getFullBattery(ModItems.battery_schrabidium_cell), 1, 1, 1), + new WeightedRandomChestContent(ModItems.battery_schrabidium_cell, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.powder_nitan_mix, 0, 16, 32, 1) }; /** diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 0162fe0cd..544f63d26 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -110,7 +110,7 @@ public class HbmWorldGen implements IWorldGenerator { Random colRand = new Random(world.getSeed() + 5); int colX = (int) (colRand.nextGaussian() * 1500); int colZ = (int) (colRand.nextGaussian() * 1500); - int colRange = 500; + int colRange = 750; for (int k = 0; k < 2; k++) { @@ -121,8 +121,10 @@ public class HbmWorldGen implements IWorldGenerator { int range = colRange / r; - if(randPosX <= colX + range && randPosX >= colX - range && randPosZ <= colZ + range && randPosZ >= colZ - range) + if(randPosX <= colX + range && randPosX >= colX - range && randPosZ <= colZ + range && randPosZ >= colZ - range) { + (new WorldGenMinable(ModBlocks.stone_porous, 16)).generate(world, rand, randPosX, randPosY, randPosZ); (new WorldGenMinable(ModBlocks.ore_coltan, 4)).generate(world, rand, randPosX, randPosY, randPosZ); + } } } diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index efb17edb8..72133d6b0 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -37,7 +37,8 @@ public class ItemHazardModule { public float digamma; public int fire; public boolean blinding; - public boolean asbestos; + public int asbestos; + public int coal; public boolean hydro; public float explosive; @@ -59,8 +60,12 @@ public class ItemHazardModule { this.fire = fire; } - public void addAsbestos() { - this.asbestos = true; + public void addAsbestos(int asbestos) { + this.asbestos = asbestos; + } + + public void addCoal(int coal) { + this.coal = coal; } public void addBlinding() { @@ -97,9 +102,13 @@ public class ItemHazardModule { if(this.fire > 0 && !reacher) entity.setFire(this.fire); - if(this.asbestos) + if(this.asbestos > 0) if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_FINE)) - HbmLivingProps.incrementAsbestos(entity, (int) (1 * mod)); + HbmLivingProps.incrementAsbestos(entity, (int) (this.asbestos * mod)); + + if(this.coal > 0) + if(!ArmorRegistry.hasProtection(entity, 3, HazardClass.PARTICLE_COARSE)) + HbmLivingProps.incrementBlackLung(entity, (int) (this.coal * mod)); if(this.hydro && currentItem) { @@ -152,10 +161,14 @@ public class ItemHazardModule { list.add(EnumChatFormatting.DARK_AQUA + "[" + I18nUtil.resolveKey("trait.blinding") + "]"); } - if(this.asbestos) { + if(this.asbestos > 0) { list.add(EnumChatFormatting.WHITE + "[" + I18nUtil.resolveKey("trait.asbestos") + "]"); } + if(this.coal > 0) { + list.add(EnumChatFormatting.BLACK + "[" + I18nUtil.resolveKey("trait.coal") + "]"); + } + if(this.hydro) { list.add(EnumChatFormatting.RED + "[" + I18nUtil.resolveKey("trait.hydro") + "]"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 0bf12bd0b..9f4c0a3ea 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -54,24 +54,14 @@ public class TileEntityCore extends TileEntityMachineBase { //System.out.println(fill + " * " + mod + " / " + max + " = " + size); - worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.explode", 100000.0F, 1.0F); - - EntityNukeExplosionMK3 exp = new EntityNukeExplosionMK3(worldObj); - exp.posX = xCoord; - exp.posY = yCoord; - exp.posZ = zCoord; - exp.destructionRange = size; - exp.speed = 25; - exp.coefficient = 1.0F; - exp.waste = false; - - worldObj.spawnEntityInWorld(exp); - - EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(worldObj, size); - cloud.posX = xCoord; - cloud.posY = yCoord; - cloud.posZ = zCoord; - worldObj.spawnEntityInWorld(cloud); + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.explode", 100000.0F, 1.0F); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, size)); + + EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(worldObj, size); + cloud.posX = xCoord; + cloud.posY = yCoord; + cloud.posZ = zCoord; + worldObj.spawnEntityInWorld(cloud); } if(slots[0] != null && slots[2] != null && slots[0].getItem() instanceof ItemCatalyst && slots[2].getItem() instanceof ItemCatalyst) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index b900b1439..a93d3a945 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -659,16 +659,7 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "random.explode", 3.0F, 0.75F); } else { - EntityNukeExplosionMK3 entity = new EntityNukeExplosionMK3(worldObj); - entity.posX = this.xCoord; - entity.posY = this.yCoord; - entity.posZ = this.zCoord; - entity.destructionRange = BombConfig.fleijaRadius; - entity.speed = 25; - entity.coefficient = 1.0F; - entity.waste = false; - - worldObj.spawnEntityInWorld(entity); + worldObj.spawnEntityInWorld(EntityNukeExplosionMK3.statFacFleija(worldObj, xCoord, yCoord, zCoord, BombConfig.fleijaRadius)); } } } diff --git a/src/main/resources/assets/hbm/textures/blocks/stone_porous.png b/src/main/resources/assets/hbm/textures/blocks/stone_porous.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec46dd51168a6cca3e95330b5b9509a94f718ac GIT binary patch literal 731 zcmV<10wn#3P)Y+Z8JMNi&BbwK97`=dc97)UdJ>|0QUCwP)ZR5 z0YV6x%_dvAn$;`|Qx~`KX z2{$)4OifMk@$rFWS!9$_JUl!wB5_?8UDr`cp_HOptzuag08tdNv$KOzic+aWyWK|r z{QOKW1VO;k(h>k~Z*OEWnLoxxQN;7}GnQo`gcuTxkB_slv4ND5AP7)Or9RlUjSzyT zrzaf8;qmd2VzG!)imR(Dq?AJwM-krN->11pQN-@