diff --git a/changelog b/changelog index 9862d630b..8e2b10e3a 100644 --- a/changelog +++ b/changelog @@ -4,6 +4,7 @@ * Has some design similarities with the RBMK, but in 3D * Relatively easy to build and safe to operate * Does not use any tile entity rendering and all math is pre-calculated when the reactor is assembled, making this one even more performant than the old large reactor + * Balancing might change, so keep that in mind when updating in the future * Sodalite * A gem that can be extracted from fluorite or lapis ore * Can be heated in the combination oven to make sodium and chlorine @@ -27,6 +28,16 @@ * Fluorite ore is now centrifugable * Fluorite crystals now centrifuge into slightly less fluorite but also yield sodalite * Blast resistance values for most resistant blocks have been changed, most blocks now have much lower resistance which means there's now a practical difference between concrete and ducrete. Resistance values also match the block's cost more closely. +* Using a screwdriver, the input and output sides of conveyor cranes (inserters, ejectors, etc) can now be configured, allowing them to operate around corners +* Sandstone's blast resistance is now as high as stone's, but only against nuclear explosions +* The tsar bomba model has been updated +* The nuclear explosion animation has been replaced with the TOREX system, instead of a static model that moves around, the mushroom clouds are now made of simulated particles +* Sellafite now uses random ticks instead of scheduled ticks every second, while this does reduce its radioactivity quite a bit, it prevents the tick queue from slowing down to a crawl with large amounts of sellafite from nuclear explosions +* Conveyor blocks now have tooltips explaining what they do and how they can be configured +* The large reactor still works despite the PWR being added, but the parts have been made uncraftable +* Unused watz parts have been hidden from the creative inventory +* Removed the bedrok coltan ore, since it was replaced by generic bedrock ores anyway +* Updated decal on the congo lake grenade launcher ## Fixed * Fixed FEnSU's IO limit not working properly @@ -40,3 +51,4 @@ * Corium is now a finite fluid, fixing an issue where a single fuel rod can be used to create a giant blob of corium, lagging out the server * Fixed bullets not being able to pass things like tall grass * Whether the player has received a guide book is now saved as part of the extprop which might fix an issue where offline mode players get a new book on every start +* Fixed electrolyser fluid recipes not showing the input amount diff --git a/gradle.properties b/gradle.properties index e8d659222..962c3fabf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4690 +mod_build_number=4704 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ @@ -8,11 +8,11 @@ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion al \ (chinese localization), Frooz (models), Minecreep (models), VT-6/24 (models, textures), Pheo (textures,\ \ various machines, models, weapons), Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide),\ \ Adam29 (liquid petroleum, ethanol, electric furnace), Pashtet (russian localization), MartinTheDragon\ - \ (calculator, chunk-based fallout), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ - \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings),\ + \ (calculator, chunk-based fallout, bendable cranes), haru315 (spiral point algorithm), Sten89 (models), Pixelguru26\ + \ (textures), TheBlueHat (textures), Alcater (GUI textures, porting), impbk2002 (project settings), Nos (models),\ \ Burningwater202 (laminate glass), OvermindDL1 (project settings), TehTemmie (reacher radiation function),\ \ Toshayo (satellite loot system, project settings, gradle curse task), Silly541 (config for safe ME drives),\ \ Voxelstice (OpenComputers integration, turbine spinup), BallOfEnergy1 (OpenComputers integration), martemen\ \ (project settings), Pvndols (thorium fuel recipe, gas turbine), JamesH2 (blood mechanics, nitric acid,\ \ particle emitter), sdddddf80 (recipe configs, chinese localization, custom machine holograms),\ - \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), Maksymisio (polish localization) + \ SuperCraftAlex (tooltips) LePeep (coilgun model, BDCL QC), 70k (textures), Maksymisio (polish localization) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 72da33957..dd5bf106a 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -88,8 +88,6 @@ public class ModBlocks { public static Block ore_bedrock; public static Block ore_volcano; - public static Block ore_bedrock_coltan; - public static Block ore_nether_coal; public static Block ore_nether_smoldering; public static Block ore_nether_uranium; @@ -1398,8 +1396,6 @@ public class ModBlocks { ore_cinnebar = new BlockOre(Material.rock).setBlockName("ore_cinnebar").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_cinnebar"); ore_coltan = new BlockOre(Material.rock).setBlockName("ore_coltan").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_coltan"); - ore_bedrock_coltan = new BlockBedrockOre().setBlockName("ore_bedrock_coltan").setCreativeTab(null).setBlockUnbreakable().setResistance(1_000_000).setBlockTextureName(RefStrings.MODID + ":ore_bedrock_coltan"); - ore_oil = new BlockOre(Material.rock).setBlockName("ore_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil"); ore_oil_empty = new BlockGeneric(Material.rock).setBlockName("ore_oil_empty").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_empty"); ore_oil_sand = new BlockFalling(Material.sand).setBlockName("ore_oil_sand").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeSand).setHardness(0.5F).setResistance(1.0F).setBlockTextureName(RefStrings.MODID + ":ore_oil_sand_alt"); @@ -1579,7 +1575,7 @@ public class ModBlocks { brick_concrete_cracked = new BlockGeneric(Material.rock).setBlockName("brick_concrete_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_cracked"); brick_concrete_broken = new BlockGeneric(Material.rock).setBlockName("brick_concrete_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(45.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_broken"); brick_concrete_marked = new BlockWriting(Material.rock, RefStrings.MODID + ":brick_concrete").setBlockName("brick_concrete_marked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(160.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete_marked"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(2400.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(120.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(5000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); @@ -1990,7 +1986,6 @@ public class ModBlocks { crane_unboxer = new CraneUnboxer().setBlockName("crane_unboxer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); crane_splitter = new CraneSplitter().setBlockName("crane_splitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":crane_side"); fan = new MachineFan().setBlockName("fan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - piston_inserter = new PistonInserter().setBlockName("piston_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -2082,9 +2077,9 @@ public class ModBlocks { watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); watz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_cooler_top").setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler_side"); watz_end = new BlockToolConversion(Material.iron).addVariant("_bolted").setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); - watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); - watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); - watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer"); + watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); + watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); + watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":watz_computer"); watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); watz_pump = new WatzPump().setBlockName("watz_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2485,7 +2480,6 @@ public class ModBlocks { GameRegistry.registerBlock(cluster_copper, ItemBlockBase.class, cluster_copper.getUnlocalizedName()); //Bedrock ores - GameRegistry.registerBlock(ore_bedrock_coltan, ore_bedrock_coltan.getUnlocalizedName()); GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName()); //Nice Meme @@ -3233,21 +3227,20 @@ public class ModBlocks { register(radio_torch_receiver); register(radio_torch_counter); - GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); - GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); - GameRegistry.registerBlock(crane_grabber, crane_grabber.getUnlocalizedName()); - GameRegistry.registerBlock(crane_router, crane_router.getUnlocalizedName()); - GameRegistry.registerBlock(crane_boxer, crane_boxer.getUnlocalizedName()); - GameRegistry.registerBlock(crane_unboxer, crane_unboxer.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_double, conveyor_double.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_triple, conveyor_triple.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_chute, conveyor_chute.getUnlocalizedName()); - GameRegistry.registerBlock(conveyor_lift, conveyor_lift.getUnlocalizedName()); - GameRegistry.registerBlock(crane_splitter, crane_splitter.getUnlocalizedName()); - GameRegistry.registerBlock(fan, fan.getUnlocalizedName()); - - GameRegistry.registerBlock(piston_inserter, piston_inserter.getUnlocalizedName()); + register(crane_extractor); + register(crane_inserter); + register(crane_grabber); + register(crane_router); + register(crane_boxer); + register(crane_unboxer); + register(conveyor); + register(conveyor_double); + register(conveyor_triple); + register(conveyor_chute); + register(conveyor_lift); + register(crane_splitter); + register(fan); + register(piston_inserter); GameRegistry.registerBlock(chain, chain.getUnlocalizedName()); GameRegistry.registerBlock(ladder_sturdy, ladder_sturdy.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java index f3d5f88e8..262f4be36 100644 --- a/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java +++ b/src/main/java/com/hbm/blocks/bomb/ExplosiveCharge.java @@ -2,7 +2,7 @@ package com.hbm.blocks.bomb; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; @@ -78,12 +78,7 @@ public class ExplosiveCharge extends Block implements IBomb, IDetConnectible { } if(this == ModBlocks.det_nuke) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } } diff --git a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java index d25f59ace..c6b96a476 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeBoy.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeBoy.java @@ -4,7 +4,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java index a00b74d56..ebc21403e 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeCustom.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeCustom.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.effect.EntityCloudFleija; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.grenade.EntityGrenadeZOMG; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK3; @@ -169,7 +169,7 @@ public class NukeCustom extends BlockContainer implements IBomb { bf.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5); bf.destructionRange = (int) amat; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, amat); /// HYDROGEN /// } else if(hydro > 0) { @@ -179,7 +179,7 @@ public class NukeCustom extends BlockContainer implements IBomb { dirty *= 0.25F; worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)hydro, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, hydro); /// NUCLEAR /// } else if(nuke > 0) { @@ -188,7 +188,7 @@ public class NukeCustom extends BlockContainer implements IBomb { nuke = Math.min(nuke, maxNuke); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int)nuke, xCoord + 0.5, yCoord + 5, zCoord + 0.5).moreFallout((int)dirty)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, nuke); /// NON-NUCLEAR /// } else if(tnt >= 75) { @@ -196,7 +196,7 @@ public class NukeCustom extends BlockContainer implements IBomb { tnt = Math.min(tnt, maxTnt); worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int)tnt, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5)); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt)); + EntityNukeTorex.statFac(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, tnt); } else if(tnt > 0) { ExplosionLarge.explode(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, tnt, true, true, true); diff --git a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java index 9c555b132..a09d7c31f 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeGadget.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeGadget.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -130,13 +130,8 @@ public class NukeGadget extends BlockContainer implements IBomb { tetn.clearSlots(); world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.gadgetRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.gadgetRadius, x + 0.5, y + 0.5, z + 0.5)); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.gadgetRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMan.java b/src/main/java/com/hbm/blocks/bomb/NukeMan.java index 9f8a8b941..d9fc4f1a5 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMan.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMan.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -124,12 +124,7 @@ public class NukeMan extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.manRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.manRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.manRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeMike.java b/src/main/java/com/hbm/blocks/bomb/NukeMike.java index 75216a1eb..84e178758 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeMike.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeMike.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -131,12 +131,7 @@ public class NukeMike extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.mikeRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.mikeRadius); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeN2.java b/src/main/java/com/hbm/blocks/bomb/NukeN2.java index a01f83d25..c65eef0f7 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeN2.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeN2.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -120,12 +120,7 @@ public class NukeN2 extends BlockContainer implements IBomb { world.playSoundEffect(x, y, z, "random.explode", 1.0f, world.rand.nextFloat() * 0.1F + 0.9F); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java index 51514ced2..f064a053a 100644 --- a/src/main/java/com/hbm/blocks/bomb/NukeTsar.java +++ b/src/main/java/com/hbm/blocks/bomb/NukeTsar.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.interfaces.IBomb; import com.hbm.main.MainRegistry; @@ -127,18 +127,9 @@ public class NukeTsar extends BlockContainer implements IBomb { public boolean igniteTestBomb(World world, int x, int y, int z, int r) { if(!world.isRemote) { 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); - world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, r, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, r * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); - - // ExplosionNukeAdvanced.mush(world, x, y, z); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, r); } return false; diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java deleted file mode 100644 index 766f3df31..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOre.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hbm.blocks.generic; - -import com.hbm.blocks.ModBlocks; -import com.hbm.items.ModItems; - -import api.hbm.block.IDrillInteraction; -import api.hbm.block.IMiningDrill; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class BlockBedrockOre extends Block implements IDrillInteraction { - - public BlockBedrockOre() { - super(Material.rock); - } - - @Override - public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return drill.getDrillRating() > 70; - } - - @Override - public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) { - - if(drill.getDrillRating() > 70) - return null; - - Item drop = this.getDrop(); - - if(drop == null) - return null; - - return world.rand.nextInt(50) == 0 ? new ItemStack(drop) : null; - } - - @Override - public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) { - return 30; - } - - private Item getDrop() { - - if(this == ModBlocks.ore_bedrock_coltan) - return ModItems.fragment_coltan; - - return null; - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockHazard.java b/src/main/java/com/hbm/blocks/generic/BlockHazard.java index 94008085f..b3bdfc145 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockHazard.java +++ b/src/main/java/com/hbm/blocks/generic/BlockHazard.java @@ -138,6 +138,7 @@ public class BlockHazard extends Block implements ITooltipProvider { public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); + // who wrote this??? rad = HazardSystem.getHazardLevelFromStack(new ItemStack(this), HazardRegistry.RADIATION) * 0.1F; if(this.rad > 0) diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java index 2f4a618c3..03c53b9f4 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafield.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafield.java @@ -29,6 +29,8 @@ public class BlockSellafield extends BlockHazard { public BlockSellafield(Material mat) { super(mat); this.setCreativeTab(MainRegistry.blockTab); + this.needsRandomTick = true; + this.rad = 0.5F; } @Override @@ -41,19 +43,20 @@ public class BlockSellafield extends BlockHazard { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - - ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad); - + int meta = world.getBlockMetadata(x, y, z); - if(rand.nextInt(meta == 0 ? 30 * 60 : 15 * 60) == 0) { + ChunkRadiationManager.proxy.incrementRad(world, x, y, z, this.rad * (meta + 1)); + + if(rand.nextInt(meta == 0 ? 25 : 15) == 0) { if(meta > 0) world.setBlockMetadataWithNotify(x, y, z, meta - 1, 2); else world.setBlock(x, y, z, ModBlocks.sellafield_slaked); } - - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } + + @Override public void onBlockAdded(World world, int x, int y, int z) { } + @SideOnly(Side.CLIENT) protected IIcon[] icons; @@ -86,6 +89,4 @@ public class BlockSellafield extends BlockHazard { public IIcon getIcon(int side, int meta) { return this.icons[meta % this.icons.length]; } - - } diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index 1798b5b59..7444f30f1 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -12,7 +12,6 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.machine.storage.TileEntityBarrel; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.client.registry.RenderingRegistry; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index 782bc09ee..54aecbef7 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -12,7 +12,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; -import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFan.java b/src/main/java/com/hbm/blocks/machine/MachineFan.java index 6a37de202..37a96e5f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFan.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFan.java @@ -2,6 +2,8 @@ package com.hbm.blocks.machine; import java.util.List; +import com.hbm.blocks.ITooltipProvider; + import api.hbm.block.IBlowable; import api.hbm.block.IToolable; import cpw.mods.fml.relauncher.Side; @@ -20,7 +22,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class MachineFan extends BlockContainer implements IToolable { +public class MachineFan extends BlockContainer implements IToolable, ITooltipProvider { public MachineFan() { super(Material.iron); @@ -142,4 +144,9 @@ public class MachineFan extends BlockContainer implements IToolable { return true; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index f6d487718..e24b46847 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -14,7 +14,6 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import com.hbm.util.I18nUtil; diff --git a/src/main/java/com/hbm/blocks/machine/PistonInserter.java b/src/main/java/com/hbm/blocks/machine/PistonInserter.java index 91e3e25b1..8b95fed92 100644 --- a/src/main/java/com/hbm/blocks/machine/PistonInserter.java +++ b/src/main/java/com/hbm/blocks/machine/PistonInserter.java @@ -1,6 +1,9 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockContainerBase; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.INBTPacketReceiver; import api.hbm.block.IInsertable; @@ -21,7 +24,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class PistonInserter extends BlockContainerBase { +public class PistonInserter extends BlockContainerBase implements ITooltipProvider { public PistonInserter() { super(Material.iron); @@ -383,4 +386,9 @@ public class PistonInserter extends BlockContainerBase { @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return true; } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java index 62a8a2b55..44ce47839 100644 --- a/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockConveyorBase.java @@ -1,5 +1,8 @@ package com.hbm.blocks.network; +import java.util.List; + +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; @@ -13,6 +16,7 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; @@ -22,7 +26,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public abstract class BlockConveyorBase extends Block implements IConveyorBelt { +public abstract class BlockConveyorBase extends Block implements IConveyorBelt, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon sideIcon; @@ -159,4 +163,9 @@ public abstract class BlockConveyorBase extends Block implements IConveyorBelt { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java index 577ceb614..ef73c5f4f 100644 --- a/src/main/java/com/hbm/blocks/network/BlockCraneBase.java +++ b/src/main/java/com/hbm/blocks/network/BlockCraneBase.java @@ -2,6 +2,7 @@ package com.hbm.blocks.network; import api.hbm.block.IToolable; import com.hbm.blocks.IBlockSideRotation; +import com.hbm.blocks.ITooltipProvider; import com.hbm.items.tool.ItemTooling; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -27,9 +28,10 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +import java.util.List; import java.util.Random; -public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable { +public abstract class BlockCraneBase extends BlockContainer implements IBlockSideRotation, IToolable, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconSide; @SideOnly(Side.CLIENT) protected IIcon iconIn; @@ -304,4 +306,9 @@ public abstract class BlockCraneBase extends BlockContainer implements IBlockSid super.breakBlock(world, x, y, z, block, meta); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneRouter.java b/src/main/java/com/hbm/blocks/network/CraneRouter.java index 06dc1769f..a89d2a695 100644 --- a/src/main/java/com/hbm/blocks/network/CraneRouter.java +++ b/src/main/java/com/hbm/blocks/network/CraneRouter.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; @@ -32,7 +33,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock { +public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) protected IIcon iconOverlay; @@ -194,11 +195,11 @@ public class CraneRouter extends BlockContainer implements IBlockMultiPass, IEnt } } - @Override - public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { - return false; - } + @Override public boolean canPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { return false; } + @Override public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } @Override - public void onPackageEnter(World world, int x, int y, int z, ForgeDirection dir, IConveyorPackage entity) { } + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/network/CraneSplitter.java b/src/main/java/com/hbm/blocks/network/CraneSplitter.java index 11de7afda..a39396fb0 100644 --- a/src/main/java/com/hbm/blocks/network/CraneSplitter.java +++ b/src/main/java/com/hbm/blocks/network/CraneSplitter.java @@ -1,6 +1,9 @@ package com.hbm.blocks.network; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.entity.item.EntityMovingItem; import com.hbm.lib.RefStrings; import com.hbm.tileentity.network.TileEntityCraneSplitter; @@ -14,6 +17,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; @@ -22,7 +26,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock { +public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnterableBlock, ITooltipProvider { @SideOnly(Side.CLIENT) public IIcon iconTopLeft; @SideOnly(Side.CLIENT) public IIcon iconTopRight; @@ -154,4 +158,9 @@ public class CraneSplitter extends BlockDummyable implements IConveyorBelt, IEnt if(meta >= 12) return ForgeDirection.getOrientation(meta - offset); return ForgeDirection.getOrientation(meta).getRotation(ForgeDirection.UP); } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/test/TestCore.java b/src/main/java/com/hbm/blocks/test/TestCore.java index ff070e919..049f7eae9 100644 --- a/src/main/java/com/hbm/blocks/test/TestCore.java +++ b/src/main/java/com/hbm/blocks/test/TestCore.java @@ -3,7 +3,7 @@ package com.hbm.blocks.test; import java.util.Random; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import net.minecraft.block.Block; @@ -27,12 +27,7 @@ public class TestCore extends Block { world.setBlockToAir(x, y, z); world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, BombConfig.missileRadius, x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius); } else if(meta > 0) { diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java index b2794a939..2aee5b349 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeCloudSmall.java @@ -9,6 +9,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; +@Deprecated public class EntityNukeCloudSmall extends Entity { public int maxAge = 1000; diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index be72b5c8b..56f2a9f67 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -2,6 +2,8 @@ package com.hbm.entity.effect; import java.util.ArrayList; +import com.hbm.util.TrackerUtil; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; @@ -34,6 +36,7 @@ public class EntityNukeTorex extends Entity { @Override protected void entityInit() { this.dataWatcher.addObject(10, new Float(1)); + this.dataWatcher.addObject(11, new Integer(0)); } @Override @@ -60,7 +63,7 @@ public class EntityNukeTorex extends Entity { lastSpawnY = posY - 3; } - int spawnTarget = worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3; + int spawnTarget = Math.max(worldObj.getHeightValue((int) Math.floor(posX), (int) Math.floor(posZ)) - 3, 1); double moveSpeed = 0.5D; if(Math.abs(spawnTarget - lastSpawnY) < moveSpeed) { @@ -69,6 +72,7 @@ public class EntityNukeTorex extends Entity { lastSpawnY += moveSpeed * Math.signum(spawnTarget - lastSpawnY); } + // spawn mush clouds double range = (torusWidth - rollerSize) * 0.25; double simSpeed = getSimulationSpeed(); int toSpawn = (int) Math.ceil(10 * simSpeed * simSpeed); @@ -82,7 +86,8 @@ public class EntityNukeTorex extends Entity { cloudlets.add(cloud); } - if(ticksExisted < 50) { + // spawn shock clouds + if(ticksExisted < 100) { int cloudCount = ticksExisted * 5; int shockLife = Math.max(300 - ticksExisted * 20, 50); @@ -97,6 +102,7 @@ public class EntityNukeTorex extends Entity { } } + // spawn ring clouds if(ticksExisted < 200) { for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); @@ -133,6 +139,11 @@ public class EntityNukeTorex extends Entity { return this; } + public EntityNukeTorex setType(int type) { + this.dataWatcher.updateObject(11, type); + return this; + } + public double getSimulationSpeed() { int lifetime = getMaxAge(); @@ -404,11 +415,21 @@ public class EntityNukeTorex extends Entity { dist = Math.max(dist, 1); double col = 2D / dist; - this.color = Vec3.createVectorHelper( - Math.max(col * 2, 0.25), - Math.max(col * 1.5, 0.25), - Math.max(col * 0.5, 0.25) - ); + int type = EntityNukeTorex.this.dataWatcher.getWatchableObjectInt(11); + + if(type == 1) { + this.color = Vec3.createVectorHelper( + Math.max(col * 1, 0.25), + Math.max(col * 2, 0.25), + Math.max(col * 0.5, 0.25) + ); + } else { + this.color = Vec3.createVectorHelper( + Math.max(col * 2, 0.25), + Math.max(col * 1.5, 0.25), + Math.max(col * 0.5, 0.25) + ); + } } public Vec3 getInterpPos(float interp) { @@ -461,15 +482,27 @@ public class EntityNukeTorex extends Entity { RING } - @Override - protected void readEntityFromNBT(NBTTagCompound nbt) { } - - @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override protected void writeEntityToNBT(NBTTagCompound nbt) { } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; } + @Override public void readEntityFromNBT(NBTTagCompound nbt) { this.setDead(); } @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { return true; } + + public static void statFac(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)); + torex.setPosition(x, y, z); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } + + public static void statFacBale(World world, double x, double y, double z, float scale) { + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)).setType(1); + torex.setPosition(x, y, z); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index c7aa4b0af..e5a4054f6 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -1,7 +1,7 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.particle.EntitySmokeFX; @@ -37,12 +37,7 @@ public class EntityMIRV extends EntityThrowable { if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { if(!this.worldObj.isRemote) { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.mirvRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.mirvRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.mirvRadius); } this.setDead(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java index 6deaa70ce..41841568c 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileCustom.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.BlockTaint; import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.IChunkLoader; @@ -327,11 +328,7 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD case NUCLEAR: case TX: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall nuke = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - nuke.posX = posX; - nuke.posY = posY; - nuke.posZ = posZ; - worldObj.spawnEntityInWorld(nuke); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case BALEFIRE: EntityBalefire bf = new EntityBalefire(worldObj); @@ -340,15 +337,11 @@ public class EntityMissileCustom extends Entity implements IChunkLoader, IRadarD bf.posZ = this.posZ; bf.destructionRange = (int) strength; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, posX, posY + 5, posZ, strength * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, posX, posY, posZ, strength); break; case N2: worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFacNoRad(worldObj, (int) strength, posX, posY, posZ)); - EntityNukeCloudSmall n2 = new EntityNukeCloudSmall(worldObj, 1000, strength * 0.005F); - n2.posX = posX; - n2.posY = posY; - n2.posZ = posZ; - worldObj.spawnEntityInWorld(n2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, strength); break; case TAINT: int r = (int) strength; diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java index 627d074a1..e5dbe3db7 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileMirv.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; @@ -25,12 +25,7 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { public void onImpact() { worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius * 2, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 2 * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY - 9; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius * 2); } @Override diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java index 76d2d3e1e..f7db04860 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileNuclear.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.items.ModItems; @@ -25,12 +25,7 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { public void onImpact() { this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.missileRadius, posX, posY, posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = this.posX; - entity2.posY = this.posY; - entity2.posZ = this.posZ; - this.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.missileRadius); } @Override diff --git a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java index b8e8365f9..f8a2e6be7 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityModBeam.java +++ b/src/main/java/com/hbm/entity/projectile/EntityModBeam.java @@ -5,7 +5,7 @@ import java.util.List; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityBlackHole; import com.hbm.entity.effect.EntityCloudFleijaRainbow; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.effect.EntityRagingVortex; import com.hbm.entity.effect.EntityVortex; import com.hbm.entity.grenade.EntityGrenadeZOMG; @@ -490,7 +490,7 @@ public class EntityModBeam extends Entity implements IProjectile { this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "random.explode", 100.0f, this.worldObj.rand.nextFloat() * 0.1F + 0.9F); this.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(worldObj, BombConfig.gadgetRadius, posX, posY, posZ)); - this.worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius)); + EntityNukeTorex.statFac(worldObj, posX, posY, posZ, BombConfig.gadgetRadius); } } } diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java index 8077d7dc6..f66c5f047 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeRayBatched.java @@ -108,7 +108,7 @@ public class ExplosionNukeRayBatched { Block block = world.getBlock(iX, iY, iZ); if(!block.getMaterial().isLiquid()) - res -= Math.pow(block.getExplosionResistance(null), 7.5D - fac); + res -= Math.pow(masqueradeResistance(block), 7.5D - fac); //else // res -= Math.pow(Blocks.air.getExplosionResistance(null), 7.5D - fac); // air is 0, might want to raise that is necessary @@ -150,6 +150,13 @@ public class ExplosionNukeRayBatched { isAusf3Complete = true; } + public static float masqueradeResistance(Block block) { + + if(block == Blocks.sandstone) return Blocks.stone.getExplosionResistance(null); + if(block == Blocks.obsidian) return Blocks.stone.getExplosionResistance(null) * 3; + return block.getExplosionResistance(null); + } + /** little comparator for roughly sorting chunks by distance to the center */ public class CoordComparator implements Comparator { diff --git a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java index aafabe2d5..9877e66f3 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java +++ b/src/main/java/com/hbm/inventory/container/ContainerNukeTsar.java @@ -16,59 +16,50 @@ private TileEntityNukeTsar nukeTsar; nukeTsar = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 35, 17)); - this.addSlotToContainer(new Slot(tedf, 1, 71, 17)); - this.addSlotToContainer(new Slot(tedf, 2, 35, 53)); - this.addSlotToContainer(new Slot(tedf, 3, 71, 53)); - this.addSlotToContainer(new Slot(tedf, 4, 53, 35)); - this.addSlotToContainer(new Slot(tedf, 5, 98, 35)); + this.addSlotToContainer(new Slot(tedf, 0, 48, 101)); + this.addSlotToContainer(new Slot(tedf, 1, 66, 101)); + this.addSlotToContainer(new Slot(tedf, 2, 84, 101)); + this.addSlotToContainer(new Slot(tedf, 3, 102, 101)); + this.addSlotToContainer(new Slot(tedf, 4, 55, 51)); + this.addSlotToContainer(new Slot(tedf, 5, 138, 101)); - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, 9 + j + i * 9, 48 + j * 18, 151 + i * 18)); } } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 48 + i * 18, 209)); } } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { + + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - - if (par2 <= 5) { - if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) - { + + if(par2 <= 5) { + if(!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } - + return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java index e91e91e65..4d22cde31 100644 --- a/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java +++ b/src/main/java/com/hbm/inventory/gui/GUINukeTsar.java @@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerNukeTsar; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.tileentity.bomb.TileEntityNukeTsar; import com.hbm.util.I18nUtil; @@ -15,14 +16,15 @@ import com.hbm.util.I18nUtil; public class GUINukeTsar extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/tsarBombaSchematic.png"); - private TileEntityNukeTsar testNuke; + private static ResourceLocation textureMike = new ResourceLocation(RefStrings.MODID + ":textures/gui/weapon/ivyMikeSchematic.png"); + private TileEntityNukeTsar tsar; public GUINukeTsar(InventoryPlayer invPlayer, TileEntityNukeTsar tedf) { super(new ContainerNukeTsar(invPlayer, tedf)); - testNuke = tedf; + tsar = tedf; - this.xSize = 176; - this.ySize = 166; + this.xSize = 256; + this.ySize = 233; } @Override @@ -35,10 +37,10 @@ public class GUINukeTsar extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.testNuke.hasCustomInventoryName() ? this.testNuke.getInventoryName() : I18n.format(this.testNuke.getInventoryName()); + String name = this.tsar.hasCustomInventoryName() ? this.tsar.getInventoryName() : I18n.format(this.tsar.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 48, this.ySize - 96 + 2, 4210752); } @Override @@ -46,16 +48,23 @@ public class GUINukeTsar extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + Minecraft.getMinecraft().getTextureManager().bindTexture(textureMike); - if(testNuke.isReady()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 0, 16, 16); - } + if(tsar.isFilled()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 18, 16, 16); + else if(tsar.isReady()) drawTexturedModalRect(guiLeft + 18, guiTop + 50, 176, 0, 16, 16); - if(testNuke.isFilled()) - { - drawTexturedModalRect(guiLeft + 133, guiTop + 34, 176, 18, 16, 16); + for(int i = 0; i < 4; i++) { + if(tsar.getStackInSlot(i) != null && tsar.getStackInSlot(i).getItem() == ModItems.explosive_lenses) switch(i) { + case 0: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 20 + 16, 209, 1, 23, 23); break; + case 2: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 20 + 16, 232, 1, 23, 23); break; + case 1: drawTexturedModalRect(guiLeft + 24 + 16, guiTop + 43 + 16, 209, 24, 23, 23); break; + case 3: drawTexturedModalRect(guiLeft + 47 + 16, guiTop + 43 + 16, 232, 24, 23, 23); break; + } } + + if(tsar.getStackInSlot(5) != null && tsar.getStackInSlot(5).getItem() == ModItems.tsar_core) + drawTexturedModalRect(guiLeft + 75 + 16, guiTop + 25 + 16, 176, 220, 80, 36); this.drawInfoPanel(guiLeft - 16, guiTop + 16, 16, 16, 2); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 88cbdd9a7..81d40b76e 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -391,9 +391,9 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.reactor_element, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.reactor_element, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.board_copper, 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); + makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new ComparableStack(ModItems.board_copper, 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); @@ -1029,11 +1029,6 @@ public class AssemblerRecipes { if(!GeneralConfig.enable528) { makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { new ComparableStack(ModItems.pipes_steel, 1), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16) }, 150); - makeRecipe(new ComparableStack(ModBlocks.reactor_element, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(PB.plate(), 2), new OreDictStack(ZR.ingot(), 2), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_control, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(PB.ingot(), 6), new ComparableStack(ModItems.bolt_tungsten, 6), new ComparableStack(ModItems.motor, 1), },100); - makeRecipe(new ComparableStack(ModBlocks.reactor_hatch, 1), new AStack[] {new ComparableStack(ModBlocks.brick_concrete, 1), new OreDictStack(STEEL.plate(), 6), },150); - makeRecipe(new ComparableStack(ModBlocks.reactor_conductor, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(CU.plate(), 12), new ComparableStack(ModItems.wire_tungsten, 4), },130); - makeRecipe(new ComparableStack(ModBlocks.reactor_computer, 1), new AStack[] {new ComparableStack(ModBlocks.reactor_conductor, 2), new ComparableStack(ModItems.circuit_targeting_tier3, 4), new ComparableStack(ModItems.circuit_gold, 1), },250); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 24), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), },400); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit_copper, 2), },300); diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java index 0f783b9f9..658f0d305 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserFluidRecipes.java @@ -12,7 +12,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; @@ -45,7 +44,7 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe { if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2)); for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); - recipes.put(new ComparableStack(ItemFluidIcon.make(input)), outputs.toArray()); + recipes.put(ItemFluidIcon.make(input), outputs.toArray()); } return recipes; diff --git a/src/main/java/com/hbm/items/armor/ItemModLens.java b/src/main/java/com/hbm/items/armor/ItemModLens.java index f7d3675fc..a9df9cfff 100644 --- a/src/main/java/com/hbm/items/armor/ItemModLens.java +++ b/src/main/java/com/hbm/items/armor/ItemModLens.java @@ -84,7 +84,6 @@ public class ItemModLens extends ItemArmorMod implements ISatChip { if(addIf(ModBlocks.ore_oil, b, 300, aX, seg, aZ, "Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_bedrock_oil, b, 300, aX, seg, aZ, "Bedrock Oil", 0xa0a0a0, player)) hits++; if(addIf(ModBlocks.ore_coltan, b, 5, aX, seg, aZ, "Coltan", 0xa0a000, player)) hits++; - if(addIf(ModBlocks.ore_bedrock_coltan, b, 1, aX, seg, aZ, "Bedrock Coltan", 0xa0a000, player)) hits++; if(addIf(ModBlocks.stone_gneiss, b, 5000, aX, seg, aZ, "Schist", 0x8080ff, player)) hits++; if(addIf(ModBlocks.ore_australium, b, 1000, aX, seg, aZ, "Australium", 0xffff00, player)) hits++; if(addIf(Blocks.end_portal_frame, b, 1, aX, seg, aZ, "End Portal", 0x40b080, player)) hits++; diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index f5c56a1a2..2d661577c 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -64,6 +64,7 @@ public class ItemWandD extends Item { EntityNukeTorex torex = new EntityNukeTorex(world); torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); torex.setScale(1.5F); + torex.setType(1); world.spawnEntityInWorld(torex); /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/items/tool/WeaponSpecial.java b/src/main/java/com/hbm/items/tool/WeaponSpecial.java index 1fc052d41..c59daa016 100644 --- a/src/main/java/com/hbm/items/tool/WeaponSpecial.java +++ b/src/main/java/com/hbm/items/tool/WeaponSpecial.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Random; import com.google.common.collect.Multimap; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityRubble; import com.hbm.items.ModItems; @@ -152,12 +152,7 @@ public class WeaponSpecial extends ItemSword { if(entityPlayer.fallDistance >= 20 && !((EntityPlayer)entityPlayer).capabilities.isCreativeMode) { if(!world.isRemote) { world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, 100, entity.posX, entity.posY, entity.posZ)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, 100 * 0.005F); - entity2.posX = entity.posX; - entity2.posY = entity.posY; - entity2.posZ = entity.posZ; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, entity.posX, entity.posY, entity.posZ, 100); } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index bb62a11b5..30b1fdeab 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -6,7 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityMist; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.projectile.EntityArtilleryShell; import com.hbm.explosion.ExplosionChaos; @@ -263,11 +263,7 @@ public class ItemAmmoArty extends Item { this.itemTypes[NUKE] = new ArtilleryShell("ammo_arty_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { shell.worldObj.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(shell.worldObj, BombConfig.missileRadius, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord)); - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(shell.worldObj, 1000, BombConfig.missileRadius * 0.005F); - entity2.posX = mop.hitVec.xCoord; - entity2.posY = mop.hitVec.yCoord; - entity2.posZ = mop.hitVec.zCoord; - shell.worldObj.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(shell.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, BombConfig.missileRadius); shell.setDead(); } }; diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index a941f6568..aff896dcf 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4690)"; + public static final String VERSION = "1.0.27 BETA (4704)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 18a1e1f49..7c0d6c047 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1056,8 +1056,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', ModItems.circuit_red_copper, 'I', Blocks.iron_bars, 'C', ModItems.circuit_targeting_tier4, 'B', ModBlocks.struct_launcher, 'E', ModBlocks.machine_battery }); addRecipeAuto(new ItemStack(ModBlocks.struct_soyuz_core, 1), new Object[] { "CUC", "TST", "TBT", 'C', ModItems.circuit_targeting_tier4, 'U', ModItems.upgrade_power_3, 'T', ModBlocks.barrel_steel, 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.machine_lithium_battery }); addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', ModItems.wire_tungsten, 'P', PB.plate(), 'C', ModItems.circuit_targeting_tier3, 'M', ModItems.magnetron }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_ejector, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', PB.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); - addRecipeAuto(new ItemStack(ModBlocks.reactor_inserter, 1), new Object[] { "CLC", "MHM", "CLC", 'C', ModBlocks.brick_concrete, 'L', CU.plate(), 'M', ModItems.motor, 'H', ModBlocks.reactor_hatch }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index d17a16610..e8834cff7 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1166,6 +1166,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.primer_9"); ignoreMappings.add("hbm:item.primer_50"); ignoreMappings.add("hbm:item.primer_buckshot"); + ignoreMappings.add("hbm:tile.ore_bedrock_coltan"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index a1bc1b705..8390aa880 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -68,7 +68,6 @@ import com.hbm.tileentity.machine.TileEntityNukeFurnace; import com.hbm.util.I18nUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.LoggingUtil; -import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.wiaj.GuiWorldInAJar; import com.hbm.wiaj.cannery.CanneryBase; import com.hbm.wiaj.cannery.Jars; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index a0c0b82b2..7781511f5 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -4,8 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.bomb.LaunchPad; import com.hbm.inventory.container.ContainerLaunchPadTier1; import com.hbm.inventory.gui.GUILaunchPadTier1; -import com.hbm.items.ModItems; -import com.hbm.items.tool.ItemDesingator; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 6403145d4..4044d26df 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -1,6 +1,6 @@ package com.hbm.tileentity.bomb; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityBalefire; import com.hbm.inventory.container.ContainerNukeFstbmb; import com.hbm.inventory.gui.GUINukeFstbmb; @@ -128,7 +128,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU bf.posZ = zCoord + 0.5; bf.destructionRange = (int) 250; worldObj.spawnEntityInWorld(bf); - worldObj.spawnEntityInWorld(EntityNukeCloudSmall.statFacBale(worldObj, xCoord + 0.5, yCoord + 5, zCoord + 0.5, 250 * 1.5F, 1000)); + EntityNukeTorex.statFacBale(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 250); } public String getMinutes() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java index 19fe5165d..07cd73d6a 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeN45.java @@ -4,7 +4,7 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.config.BombConfig; -import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerNukeN45; @@ -262,12 +262,7 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory, IG break; case 4: world.spawnEntityInWorld(EntityNukeExplosionMK5.statFac(world, (int)(BombConfig.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); - - EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, BombConfig.missileRadius * 0.005F * 0.75F); - entity2.posX = x; - entity2.posY = y; - entity2.posZ = z; - world.spawnEntityInWorld(entity2); + EntityNukeTorex.statFac(world, x + 0.5, y + 0.5, z + 0.5, BombConfig.missileRadius * 0.75F); break; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 866820e63..ec42fb0c8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -231,7 +231,7 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG this.flux = newFlux; - if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class)) { + if(tanks[0].getTankType().hasTrait(FT_PWRModerator.class) && tanks[0].getFill() > 0) { this.flux *= tanks[0].getTankType().getTrait(FT_PWRModerator.class).getMultiplier(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 9b9a4432c..151c61c12 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -107,19 +107,26 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { + if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { slots[i] = new ItemStack(ModItems.ingot_mercury, 1, meta); } - if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 20) == 0) { + if(item == ModItems.nugget_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } - if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + if(item == ModItems.ingot_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { slots[i] = new ItemStack(ModItems.ingot_bismuth, 1, meta); } - if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { slots[i] = new ItemStack(ModItems.nugget_bismuth, 1, meta); } + + if(item == ModItems.powder_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { + slots[i] = new ItemStack(ModItems.powder_zirconium, 1, meta); + } + if(item == ModItems.nugget_sr90 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + slots[i] = new ItemStack(ModItems.nugget_zirconium, 1, meta); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 360d25ebe..32444fda7 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -16,7 +16,6 @@ import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 9332cb750..ec0d5ae57 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -33,7 +33,6 @@ import com.hbm.tileentity.IOverpressurable; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.IRepairable; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.I18nUtil; import com.hbm.util.ParticleUtil; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.common.Optional; diff --git a/src/main/java/com/hbm/world/feature/BiomeCave.java b/src/main/java/com/hbm/world/feature/BiomeCave.java index 0add71808..f1beb0d10 100644 --- a/src/main/java/com/hbm/world/feature/BiomeCave.java +++ b/src/main/java/com/hbm/world/feature/BiomeCave.java @@ -13,7 +13,7 @@ import net.minecraft.world.biome.BiomeGenBase.TempCategory; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class BiomeCave { @@ -52,7 +52,7 @@ public class BiomeCave { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/DeepLayer.java b/src/main/java/com/hbm/world/feature/DeepLayer.java index b8f29cf41..685fdb7eb 100644 --- a/src/main/java/com/hbm/world/feature/DeepLayer.java +++ b/src/main/java/com/hbm/world/feature/DeepLayer.java @@ -11,14 +11,14 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class DeepLayer { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; if(world.provider == null || world.provider.dimensionId != 0) return; diff --git a/src/main/java/com/hbm/world/feature/OreCave.java b/src/main/java/com/hbm/world/feature/OreCave.java index eed1cdfdc..49ae81a9b 100644 --- a/src/main/java/com/hbm/world/feature/OreCave.java +++ b/src/main/java/com/hbm/world/feature/OreCave.java @@ -13,7 +13,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreCave { @@ -71,7 +71,7 @@ public class OreCave { @SuppressWarnings("incomplete-switch") @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/OreLayer.java b/src/main/java/com/hbm/world/feature/OreLayer.java index b0411b147..8e658cb65 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer.java +++ b/src/main/java/com/hbm/world/feature/OreLayer.java @@ -10,7 +10,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreLayer { @@ -65,7 +65,7 @@ public class OreLayer { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/OreLayer3D.java b/src/main/java/com/hbm/world/feature/OreLayer3D.java index aee3cf43d..08650db8e 100644 --- a/src/main/java/com/hbm/world/feature/OreLayer3D.java +++ b/src/main/java/com/hbm/world/feature/OreLayer3D.java @@ -8,7 +8,7 @@ import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class OreLayer3D { @@ -51,7 +51,7 @@ public class OreLayer3D { } @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { World world = event.world; diff --git a/src/main/java/com/hbm/world/feature/SchistStratum.java b/src/main/java/com/hbm/world/feature/SchistStratum.java index f16f4b93a..28d5d6fe2 100644 --- a/src/main/java/com/hbm/world/feature/SchistStratum.java +++ b/src/main/java/com/hbm/world/feature/SchistStratum.java @@ -9,14 +9,14 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.NoiseGeneratorPerlin; -import net.minecraftforge.event.terraingen.DecorateBiomeEvent; +import net.minecraftforge.event.terraingen.PopulateChunkEvent; public class SchistStratum { NoiseGeneratorPerlin noise; @SubscribeEvent - public void onDecorate(DecorateBiomeEvent.Pre event) { + public void onDecorate(PopulateChunkEvent.Pre event) { if(this.noise == null) { this.noise = new NoiseGeneratorPerlin(new Random(event.world.getSeed()), 4); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 25ba97821..c93c37910 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -275,6 +275,7 @@ container.amsLimiter=AMS-Stabilisator (Deko) container.anvil=Stufe %s Amboss container.arcFurnace=Lichtbogenofen container.armorTable=Rüstungsmodifikationstisch +container.ashpit=Aschekasten container.assembler=Fertigungsmaschine container.autocrafter=Automatische Werkbank container.barrel=Fass @@ -1893,6 +1894,7 @@ item.gun_calamity_ammo.name=.50 BMG Patrone (LEGACY) item.gun_calamity_dual.name=Sattelkanone item.gun_chemthrower.name=Chemowerfer item.gun_coilgun.name=Gaußpistole +item.gun_cryocannon.name=Kyro-Kanone item.gun_cryolator.name=Der Cryolator item.gun_cryolator_ammo.name=Kryozelle item.gun_dampfmaschine.name=Garantiert keine Scherzwaffe @@ -3710,18 +3712,30 @@ tile.concrete_stairs.name=Betonfliesentreppe tile.concrete_super.name=Super Beton tile.concrete_super_broken.name=Schimmliger Schutt tile.conveyor.name=Förderband +tile.conveyor.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_chute.name=Förderschütte +tile.conveyor_chute.desc=Bewegt Items nach unten$Die unterste Schütte verhält sich wie ein normales Förderband tile.conveyor_double.name=Zweispuriges Förderband +tile.conveyor_double.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.conveyor_lift.name=Kettenaufzug +tile.conveyor_lift.desc=Bewegt Items nach oben$Benötigt mindestens zwei Aufzüge übereinander um richtig zu funktionieren tile.conveyor_triple.name=Dreispuriges Förderband +tile.conveyor_triple.desc=Bewegt Items$Kann mit Schraubenzieher im Uhrzeigersinn gedreht werden$Shiftclick umdas Band zu biegen tile.corium_block.name=Corium tile.crane_boxer.name=Förderband-Verpacker +tile.crane_boxer.desc=Lädt eine konfigurierbare Menge Stacks in Boxen$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_extractor.name=Förderband-Auswerfer +tile.crane_extractor.desc=Nimmt Items aus behältern und legt sie auf Förderbänder$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_grabber.name=Förderband-Greifer +tile.crane_grabber.desc=Nimmt Items von vorbeilaufenden Förderbändern und legt sie in Behälter$Nimmt nur Items von der nähesten Spur$Hat bis zu 9 Filterslots mit Black- und Whitelist$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_inserter.name=Förderband-Einsetzer +tile.crane_inserter.desc=Akzeptiert Items von Förderbändern und legt sie in Behälter$Rechstclick mit Schraubenzieher um Eingang zu definieren$Shiftclick mit Schraubenzieher um Ausgang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crane_router.name=Förderband-Sortierer +tile.crane_router.desc=Sortiert Items basierend auf eingestellte Kriterien$Seiten können als Blacklist, Whitelist oder Wildcard eingestellt werden$Widlcard-Seiten werden nur verwendet, wenn kein anderer Filter zutrifft tile.crate_splitter.name=Förderband-Teiler +tile.crane_splitter.desc=Teilt Items und Stacks gleichmäßig auf zwei Förderbänder$Zählt selbst als Förderband, kann also direkt in Einsetzer und Sortierer führen tile.crane_unboxer.name=Förderband-Entpacker +tile.crane_unboxer.desc=Öffnet boxen$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren tile.crashed_bomb.name=Blindgänger tile.crate.name=Vorratskiste tile.crate_ammo.name=Sternenmetallkiste @@ -3814,6 +3828,7 @@ tile.factory_titanium_furnace.name=Einfache Fabrikzugriffsluke tile.factory_titanium_hull.name=Fabrikblock tile.fallout.name=Fallout tile.fan.name=Ventilator +tile.fan.desc=Kann mit Redstone aktiviert werden$Bewegt Entities bis zu 10 Blöcke$Rechtsclick mit Schraubenzieher um den Ventilator umzudrehen tile.fence_metal.name=Maschendrahtzaun tile.field_disturber.name=Hochenergiefeld-Jammer tile.fire_digamma.name=Verweilendes Digamma @@ -3961,7 +3976,7 @@ tile.machine_amgen.name=Umgebungsstrahlungs-Generator tile.machine_arc_furnace_off.name=Lichtbogenofen tile.machine_arc_furnace_on.name=Lichtbogenofen tile.machine_armor_table.name=Rüstungsmodifikationstisch -tile.machine_ashpit.name=Ashekasten +tile.machine_ashpit.name=Aschekasten tile.machine_ashpit.desc=Sammelt Asche von Feuerbüchsen und Heizöfen tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik @@ -4211,6 +4226,8 @@ tile.pink_log.name=Pinkes Holz tile.pink_planks.name=Pinke Holzbretter tile.pink_slab.name=Pinke Holzstufe tile.pink_stairs.name=Pinke Holztreppen +tile.piston_inserter.name=Einsetzer-Kolben +tile.piston_inserter.desc=Kann ein Item halten$Wenn mit Redstone aktiviert, setzt das Item in gebohrten Graphit ein$Alle Items in gebohrten Graphitblöcken in der Linie werden einen Block verschoben$Benötigt einen Luftblock zwischen sich selbst und dem Graphit tile.plant_dead.name=Tote Pflanze tile.plant_flower.cd0.name=Senf-Weide tile.plant_flower.cd1.name=Senf-Weide @@ -4232,6 +4249,25 @@ tile.pribris.name=RBMK-Schutt tile.pribris_burning.name=Flammender RBMK-Schutt tile.pribris_digamma.name=Geschwärzter RBMK-Schutt tile.pribris_radiating.name=Glühender RBMK-Schutt +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Druckbehälter +tile.pwr_casing.desc=Muss alle internen Teile des PWRs abdecken$Platzierung: Hülle +tile.pwr_channel.name=PWR Kühlmittelkanal +tile.pwr_channel.desc=Nutzt Hitze aus der Hülle um Kühlmittle zu erhitzen$Platzierung: Egal +tile.pwr_control.name=PWR Steuerstäbe +tile.pwr_control.desc=Reguliert verbundene Brennstäbe$Platzierung: Gitter, zwischen Brennstäben +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Zugangsterminal zum PWR$Platzierung: Hülle, nur eines pro Reaktor$Rechtsclick um Reaktor zusammenzubauen +tile.pwr_fuel.name=PWR Brennstäbe +tile.pwr_fuel.desc=Erhöht die Kapazität für Brennelemente$Platzierung: Gitter, für höhere Reaktivität +tile.pwr_heatex.name=PWR Waärmetauscher +tile.pwr_heatex.desc=Gleicht Kerntemparatur mit Hülltemparatur aus$Platzierung: Egal +tile.pwr_neutron_source.name=PWR Neutronenquelle +tile.pwr_neutron_source.desc=Fügt dem Kern 20 Flux hinzu$Platzierung: Egal$Flux erreicht den Kern nur, wenn Steuerstäbe offen sind +tile.pwr_port.name=PWR Zugangsport +tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle +tile.pwr_reflector.name=PWR Neutronenreflektor +tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler tile.radio_torch_counter.desc=Kann auf ebenen Flächen oder Komparator-kompatiblen Blöcken platziert werden$Signal basiert auf Anzahl passender Items tile.radio_torch_receiver.name=Redstone-over-Radio Empfänger diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 87e424890..a34f8457c 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -632,6 +632,7 @@ container.amsLimiter=AMS Stabilizer (Deco) container.anvil=Tier %s Anvil container.arcFurnace=Arc Furnace container.armorTable=Armor Modification Table +container.ashpit=Ashpit container.assembler=Assembly Machine container.autocrafter=Automatic Crafting Table container.barrel=Barrel @@ -2610,6 +2611,7 @@ item.gun_calamity_dual.name=Saddle Gun item.gun_chemthrower.name=Chemthrower item.gun_coilgun.name=Coilgun item.gun_congolake.name=Congo Lake +item.gun_cryocannon.name=Cryo Cannon item.gun_cryolator.name=The Cryolator item.gun_cryolator_ammo.name=Cryo Cell item.gun_dampfmaschine.name=Totally Not a Joke Weapon @@ -4680,18 +4682,30 @@ tile.concrete_stairs.name=Concrete Tile Stairs tile.concrete_super.name=Über Concrete tile.concrete_super_broken.name=Moldy Debris tile.conveyor.name=Conveyor Belt +tile.conveyor.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_chute.name=Conveyor Chute +tile.conveyor_chute.desc=Moves items down$The bottom-most chute will act like a regular conveyor belt tile.conveyor_double.name=Double-Lane Conveyor Belt +tile.conveyor_double.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.conveyor_lift.name=Conveyor Chain Lift +tile.conveyor_lift.desc=Moves items up$Requires at least two blocks on top of each other to work properly tile.conveyor_triple.name=Triple-Lane Conveyor Belt +tile.conveyor_triple.desc=Moves items dropped on it$Can be rotated clockwise with a screwdriver$Shift-click with screwdriver to bend tile.corium_block.name=Corium tile.crane_boxer.name=Conveyor Boxer +tile.crane_boxer.desc=Loads a configurable amount of stacks into boxes which move along conveyor belts$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_extractor.name=Conveyor Ejector +tile.crane_extractor.desc=Takes items from inventories and places them on covneyor belts$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crane_grabber.name=Conveyor Grabber +tile.crane_grabber.desc=Takes items from passing conveyors and places them into containers$Will only take items from the closest lane$Has up to 9 filter slots with black and whitelist$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_inserter.name=Conveyor Inserter +tile.crane_inserter.desc=Accepts items from conveyors and places them into containers$Right-click with screwdriver to set input side$Shift-click with screwdriver to set the output side$Click twice to set the opposite side tile.crane_router.name=Conveyor Sorter +tile.crane_router.desc=Sorts item based on defined criteria$Sides can be defined as blacklist, whitelist or wildcard$Wildcard sides are only chosen if no other filter matches tile.crane_splitter.name=Conveyor Splitter +tile.crane_splitter.desc=Splits items and stacks evenly onto two conveyor belts$Is a conveyor belt itself, so it can directly input into an inserter or sorter tile.crane_unboxer.name=Conveyor Unboxer +tile.crane_unboxer.desc=Receives boxes and extracts their contents$Right-click with screwdriver to set output side$Shift-click with screwdriver to set the input side$Click twice to set the opposite side tile.crashed_bomb.name=Dud tile.crate.name=Supply Crate tile.crate_ammo.name=Starmetal Crate @@ -4714,27 +4728,6 @@ tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_emitter.name=Deco Light Emitter -tile.part_emitter.name=Deco Particle Emitter -tile.piston_inserter.name=Inserter -tile.pwr_block.name=PWR -tile.pwr_casing.name=PWR Pressure Vessel -tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing -tile.pwr_channel.name=PWR Coolant Channel -tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any -tile.pwr_control.name=PWR Control Rod -tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between control rods -tile.pwr_controller.name=PWR Controller -tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor -tile.pwr_fuel.name=PWR Fuel Rod -tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity -tile.pwr_heatex.name=PWR Heat Exchanger -tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any -tile.pwr_neutron_source.name=PWR Neutron Source -tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open -tile.pwr_port.name=PWR Access Port -tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing -tile.pwr_reflector.name=PWR Neutron Reflector -tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.deco_lead.name=Lead Deco Block tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block @@ -4806,6 +4799,7 @@ tile.factory_titanium_furnace.name=Basic Factory Access Hatch tile.factory_titanium_hull.name=Factory Block tile.fallout.name=Fallout tile.fan.name=Fan +tile.fan.desc=Activates using redstone$Will push entities up to 10 blocks$Right-click with screwdriver to flip tile.fence_metal.name=Chainlink Fence tile.field_disturber.name=High Energy Field Jammer tile.filing_cabinet.green.name=Dusty Filing Cabinet @@ -5205,11 +5199,14 @@ tile.ore_uranium_scorched.name=Scorched Uranium Ore tile.ore_verticium.name=Dollar Green Mineral tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite +tile.part_emitter.name=Deco Particle Emitter tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log tile.pink_planks.name=Pink Wood Planks tile.pink_slab.name=Pink Wood Slab tile.pink_stairs.name=Pink Wood Stairs +tile.piston_inserter.name=Inserter +tile.piston_inserter.desc=Can receive one item using automation$Using redstone, it will insert the item into drilled graphite$All drilled graphite in the chain will have their items pushed by one block$Needs one block of air between the graphite tile.plant_dead.name=Dead Plant tile.plant_flower.cd0.name=Mustard Willow tile.plant_flower.cd1.name=Mustard Willow @@ -5231,6 +5228,25 @@ tile.pribris.name=RBMK Debris tile.pribris_burning.name=Flaming RBMK Debris tile.pribris_digamma.name=Blackened RBMK Debris tile.pribris_radiating.name=Smoldering RBMK Debris +tile.pwr_block.name=PWR +tile.pwr_casing.name=PWR Pressure Vessel +tile.pwr_casing.desc=Needs to cover all internal parts for the reactor to form$Placement: Casing +tile.pwr_channel.name=PWR Coolant Channel +tile.pwr_channel.desc=Uses hull heat to heat up coolant$Placement: Any +tile.pwr_control.name=PWR Control Rod +tile.pwr_control.desc=Allows connected fuel rods to be controlled$Placement: Grid, between fuel rods +tile.pwr_controller.name=PWR Controller +tile.pwr_controller.desc=Access terminal for the PWR$Placement: Casing, only one per reactor$Right-click to assemble the reactor +tile.pwr_fuel.name=PWR Fuel Rod +tile.pwr_fuel.desc=Increases PWR fuel capacity$Placement: Grid, for increased reactivity +tile.pwr_heatex.name=PWR Heat Exchanger +tile.pwr_heatex.desc=Moves core heat to the hull$Placement: Any +tile.pwr_neutron_source.name=PWR Neutron Source +tile.pwr_neutron_source.desc=Adds 20 flux to the core$Placement: Any$Flux only reaches fuel rods if connections are open +tile.pwr_port.name=PWR Access Port +tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing +tile.pwr_reflector.name=PWR Neutron Reflector +tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material tile.radio_torch_counter.name=Redstone-over-Radio Item Counter tile.radio_torch_counter.desc=Placable on flat surfaces or comparator-compatible blocks$Bases signal on the amount of matching items tile.radio_torch_receiver.name=Redstone-over-Radio Receiver diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png index 6a1c5e40f..6df7cce0f 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/ivyMikeSchematic.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png b/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png index 3e3a3ca7d..6adb2423b 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png and b/src/main/resources/assets/hbm/textures/gui/weapon/tsarBombaSchematic.png differ