diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 4b2f46a2b..fa783ef1a 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1419,6 +1419,14 @@ item.t45_boots.name=T45-Powerrüstungsstiefel tile.mush.name=Leuchtender Pilz tile.waste_mycelium.name=Leuchtende Myzel +tile.sellafield_slaked.name=Gelöschtes Sellafit +tile.sellafield_0.name=Sellafit +tile.sellafield_1.name=Heißes Sellafit +tile.sellafield_2.name=Kochendes Sellafit +tile.sellafield_3.name=Flammendes Sellafit +tile.sellafield_4.name=Infernales Sellafit +tile.sellafield_core.name=Sellafit-Corium + item.warhead_generic_small.name=Kleiner Sprengkopf item.warhead_generic_medium.name=Mittlerer Sprengkopf item.warhead_generic_large.name=Großer Sprengkopf diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 9dc9c31b6..3029527b6 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -509,7 +509,7 @@ item.ingot_polymer.name=Polymer Ingot item.bolt_dura_steel.name=High-Speed Steel Bolt item.pipes_steel.name=Steel Pipes item.drill_titanium.name=Titanium Drill -item.bolt_tungsten.name=Tunsten Bolt +item.bolt_tungsten.name=Tungsten Bolt item.bolt_compound.name=Reinforced Turbine Shaft item.plate_polymer.name=Insulator item.ingot_solinium.name=Solinium Ingot @@ -1419,6 +1419,14 @@ item.t45_boots.name=T45 Power Armor Boots tile.mush.name=Glowing Mushroom tile.waste_mycelium.name=Glowing Mycelium +tile.sellafield_slaked.name=Slaked Sellafite +tile.sellafield_0.name=Sellafite +tile.sellafield_1.name=Hot Sellafite +tile.sellafield_2.name=Boiling Sellafite +tile.sellafield_3.name=Blazing Sellafite +tile.sellafield_4.name=Infernal Sellafite +tile.sellafield_core.name=Sellafite-Corium + item.warhead_generic_small.name=Small Warhead item.warhead_generic_medium.name=Medium Warhead item.warhead_generic_large.name=Large Warhead diff --git a/assets/hbm/textures/blocks/sellafield_0.png b/assets/hbm/textures/blocks/sellafield_0.png new file mode 100644 index 000000000..1ceee4626 Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_0.png differ diff --git a/assets/hbm/textures/blocks/sellafield_1.png b/assets/hbm/textures/blocks/sellafield_1.png new file mode 100644 index 000000000..84fd803b7 Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_1.png differ diff --git a/assets/hbm/textures/blocks/sellafield_2.png b/assets/hbm/textures/blocks/sellafield_2.png new file mode 100644 index 000000000..0bf4a2a81 Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_2.png differ diff --git a/assets/hbm/textures/blocks/sellafield_3.png b/assets/hbm/textures/blocks/sellafield_3.png new file mode 100644 index 000000000..d018fe41c Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_3.png differ diff --git a/assets/hbm/textures/blocks/sellafield_4.png b/assets/hbm/textures/blocks/sellafield_4.png new file mode 100644 index 000000000..1622a4a90 Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_4.png differ diff --git a/assets/hbm/textures/blocks/sellafield_core.png b/assets/hbm/textures/blocks/sellafield_core.png new file mode 100644 index 000000000..c16b672e0 Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_core.png differ diff --git a/assets/hbm/textures/blocks/sellafield_slaked.png b/assets/hbm/textures/blocks/sellafield_slaked.png new file mode 100644 index 000000000..319bf2aec Binary files /dev/null and b/assets/hbm/textures/blocks/sellafield_slaked.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index f7200eca7..940ece43d 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -168,6 +168,14 @@ public class ModBlocks { public static Block frozen_log; public static Block frozen_planks; + public static Block sellafield_slaked; + public static Block sellafield_0; + public static Block sellafield_1; + public static Block sellafield_2; + public static Block sellafield_3; + public static Block sellafield_4; + public static Block sellafield_core; + public static Block flame_war; public static Block float_bomb; public static Block therm_endo; @@ -693,6 +701,14 @@ public class ModBlocks { frozen_grass = new WasteEarth(Material.wood).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_log = new WasteLog(Material.wood).setBlockName("frozen_log").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_planks = new BlockOre(Material.wood).setBlockName("frozen_planks").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_planks"); + + sellafield_slaked = new BlockGeneric(Material.rock).setBlockName("sellafield_slaked").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_slaked"); + sellafield_0 = new BlockOre(Material.rock).setBlockName("sellafield_0").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_0"); + sellafield_1 = new BlockOre(Material.rock).setBlockName("sellafield_1").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_1"); + sellafield_2 = new BlockOre(Material.rock).setBlockName("sellafield_2").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_2"); + sellafield_3 = new BlockOre(Material.rock).setBlockName("sellafield_3").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_3"); + sellafield_4 = new BlockOre(Material.rock).setBlockName("sellafield_4").setStepSound(Block.soundTypeStone).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_4"); + sellafield_core = new Sellafield(Material.rock).setBlockName("sellafield_core").setStepSound(Block.soundTypeStone).setHardness(10.0F).setBlockTextureName(RefStrings.MODID + ":sellafield_core"); nuke_gadget = new NukeGadget(Material.iron).setBlockName("nuke_gadget").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":theGadget"); nuke_boy = new NukeBoy(Material.iron).setBlockName("nuke_boy").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":lilBoy"); @@ -1123,6 +1139,15 @@ public class ModBlocks { GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); GameRegistry.registerBlock(frozen_log, frozen_log.getUnlocalizedName()); GameRegistry.registerBlock(frozen_planks, frozen_planks.getUnlocalizedName()); + + //RAD + GameRegistry.registerBlock(sellafield_slaked, sellafield_slaked.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_0, sellafield_0.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_1, sellafield_1.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_2, sellafield_2.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_3, sellafield_3.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_4, sellafield_4.getUnlocalizedName()); + GameRegistry.registerBlock(sellafield_core, sellafield_core.getUnlocalizedName()); //Nukes GameRegistry.registerBlock(nuke_gadget, nuke_gadget.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/Landmine.java b/com/hbm/blocks/bomb/Landmine.java index e5822bdf3..1ca8b71bf 100644 --- a/com/hbm/blocks/bomb/Landmine.java +++ b/com/hbm/blocks/bomb/Landmine.java @@ -67,7 +67,7 @@ public class Landmine extends BlockContainer implements IBomb { int p_149719_4_) { float f = 0.0625F; if (this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 4 * f, 10 * f); + this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); if (this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); if (this == ModBlocks.mine_shrap) @@ -80,7 +80,7 @@ public class Landmine extends BlockContainer implements IBomb { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { float f = 0.0625F; if (this == ModBlocks.mine_ap) - this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 4 * f, 10 * f); + this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 2 * f, 10 * f); if (this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); if (this == ModBlocks.mine_shrap) diff --git a/com/hbm/blocks/bomb/Sellafield.java b/com/hbm/blocks/bomb/Sellafield.java new file mode 100644 index 000000000..9ceacf54f --- /dev/null +++ b/com/hbm/blocks/bomb/Sellafield.java @@ -0,0 +1,21 @@ +package com.hbm.blocks.bomb; + +import com.hbm.tileentity.bomb.TileEntitySellafield; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Sellafield extends BlockContainer { + + public Sellafield(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntitySellafield(); + } + +} diff --git a/com/hbm/blocks/generic/BlockOre.java b/com/hbm/blocks/generic/BlockOre.java index 5d75be88d..b774d57c0 100644 --- a/com/hbm/blocks/generic/BlockOre.java +++ b/com/hbm/blocks/generic/BlockOre.java @@ -228,6 +228,26 @@ public class BlockOre extends Block { { Library.applyRadiation((EntityLivingBase)entity, 30, 9, 15, 4); } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_0) + { + Library.applyRadiation((EntityLivingBase)entity, 30, 10, 20, 5); + } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_1) + { + Library.applyRadiation((EntityLivingBase)entity, 60, 25, 40, 20); + } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_2) + { + Library.applyRadiation((EntityLivingBase)entity, 2 * 60, 40, 90, 30); + } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_3) + { + Library.applyRadiation((EntityLivingBase)entity, 3 * 60, 60, 2 * 60, 40); + } + if (entity instanceof EntityLivingBase && this == ModBlocks.sellafield_4) + { + Library.applyRadiation((EntityLivingBase)entity, 4 * 60, 80, 2 * 90, 60); + } if(this == ModBlocks.block_meteor_molten) entity.setFire(5); diff --git a/com/hbm/blocks/generic/BlockStorageCrate.java b/com/hbm/blocks/generic/BlockStorageCrate.java index f4fbf0853..86c7692e1 100644 --- a/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/com/hbm/blocks/generic/BlockStorageCrate.java @@ -3,10 +3,12 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityCrateIron; import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.TileEntityLockableBase; import com.hbm.tileentity.machine.TileEntityMachineOilWell; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; @@ -74,6 +76,12 @@ public class BlockStorageCrate extends BlockContainer { if (!keepInventory) { ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + + if(((TileEntityLockableBase)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_)).isLocked()) { + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + return; + } + if (tileentityfurnace != null) { @@ -125,14 +133,17 @@ public class BlockStorageCrate extends BlockContainer { if(world.isRemote) { return true; + } else if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemLock) { + return false; + } else if(!player.isSneaking()) { TileEntity entity = world.getTileEntity(x, y, z); - if(entity instanceof TileEntityCrateIron) + if(entity instanceof TileEntityCrateIron && ((TileEntityCrateIron)entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_iron, world, x, y, z); } - if(entity instanceof TileEntityCrateSteel) + if(entity instanceof TileEntityCrateSteel && ((TileEntityCrateSteel)entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_crate_steel, world, x, y, z); } diff --git a/com/hbm/blocks/test/TestEventTester.java b/com/hbm/blocks/test/TestEventTester.java index 49b53a1c3..7866ced1c 100644 --- a/com/hbm/blocks/test/TestEventTester.java +++ b/com/hbm/blocks/test/TestEventTester.java @@ -20,6 +20,7 @@ import com.hbm.potion.HbmPotion; import com.hbm.saveddata.SatelliteSaveStructure; import com.hbm.saveddata.SatelliteSavedData; import com.hbm.world.Meteorite; +import com.hbm.world.Sellafield; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -261,7 +262,10 @@ public class TestEventTester extends Block { /*if(!worldObj.isRemote) buildEvent(worldObj, par2, par3, par4, 30);*/ - ((EntityLivingBase)par5EntityPlayer).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 100, 0)); + /*((EntityLivingBase)par5EntityPlayer).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 100, 0));*/ + + worldObj.setBlockToAir(par2, par3, par4); + (new Sellafield()).generate(worldObj, par2, par4, 15D, 7.5D); return true; } diff --git a/com/hbm/entity/grenade/EntityGrenadeGas.java b/com/hbm/entity/grenade/EntityGrenadeGas.java index 910369bb5..b5877de03 100644 --- a/com/hbm/entity/grenade/EntityGrenadeGas.java +++ b/com/hbm/entity/grenade/EntityGrenadeGas.java @@ -29,7 +29,7 @@ public class EntityGrenadeGas extends EntityGrenadeBase { if (!this.worldObj.isRemote) { this.setDead(); - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, true); + this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 0.0F, true); // ExplosionChaos.poison(this.worldObj, (int)this.posX, // (int)this.posY, (int)this.posZ, 5); // for(int i = 0; 0 < 15; i++) { diff --git a/com/hbm/inventory/FluidTank.java b/com/hbm/inventory/FluidTank.java index af5206ae5..c56822a69 100644 --- a/com/hbm/inventory/FluidTank.java +++ b/com/hbm/inventory/FluidTank.java @@ -80,7 +80,9 @@ public class FluidTank { } if(slots[in].getItem() == ModItems.inf_water && this.type.name().equals(FluidType.WATER.name())) { - this.fluid = this.maxFluid; + this.fluid += 50; + if(this.fluid > this.maxFluid) + this.fluid = this.maxFluid; return; } diff --git a/com/hbm/items/special/ItemStarterKit.java b/com/hbm/items/special/ItemStarterKit.java index fb0ebd927..2cb211784 100644 --- a/com/hbm/items/special/ItemStarterKit.java +++ b/com/hbm/items/special/ItemStarterKit.java @@ -1,9 +1,15 @@ package com.hbm.items.special; +import java.util.List; + import com.hbm.blocks.ModBlocks; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -21,6 +27,21 @@ public class ItemStarterKit extends Item { this.maxStackSize = 1; this.setMaxDamage(1); } + + private void giveHaz(World world, EntityPlayer p) { + + for(int i = 0; i < 4; i++) { + + if(p.inventory.armorInventory[i] != null && !world.isRemote) { + world.spawnEntityInWorld(new EntityItem(world, p.posX, p.posY + p.eyeHeight, p.posZ, p.inventory.armorInventory[i])); + } + } + + p.inventory.armorInventory[3] = new ItemStack(ModItems.hazmat_helmet); + p.inventory.armorInventory[2] = new ItemStack(ModItems.hazmat_plate); + p.inventory.armorInventory[1] = new ItemStack(ModItems.hazmat_legs); + p.inventory.armorInventory[0] = new ItemStack(ModItems.hazmat_boots); + } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { @@ -29,7 +50,7 @@ public class ItemStarterKit extends Item { if(this == ModItems.nuke_starter_kit) { - player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1)); + /*player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_centrifuge, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_uf6_tank, 1)); @@ -61,12 +82,36 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 32)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_uf6, 8)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 16));*/ + + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.template_folder, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_press, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_centrifuge, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_puf6_tank, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_nuke_furnace_off, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_small, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.stamp_titanium_flat, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_steel, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_lead, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_copper, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_m65, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + + giveHaz(world, player); } if(this == ModItems.nuke_advanced_kit) { - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 2)); + /*player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 2)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_centrifuge), 4)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_reactor), 3)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 2)); @@ -105,12 +150,49 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1));*/ + + player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_yellowcake, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.powder_plutonium, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_steel, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_copper, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_tungsten, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_lead, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_polymer, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_centrifuge, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_uf6_tank, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_puf6_tank, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_furnace_off, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_small, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_radgen, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_grey, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_fluidtank, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_full, 4, FluidType.COOLANT.getID())); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pill_iodine, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.tritium_deuterium_cake, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.gas_mask_m65, 1)); + + giveHaz(world, player); } if(this == ModItems.nuke_commercially_kit) { - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_generator), 4)); + /*player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_generator), 4)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 2)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_rtg_furnace_off), 2)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 4)); @@ -134,12 +216,47 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_coolant, 1));*/ + + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_pu238, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_uranium_fuel, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_plutonium_fuel, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ingot_mox_fuel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rtg_unit, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.reactor_core, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.cell_empty, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_empty, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_full, 16, FluidType.WATER.getID())); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.fluid_barrel_full, 8, FluidType.COOLANT.getID())); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_nuke_furnace_off, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_furnace_off, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_rtg_grey, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_small, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_lithium_battery, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 32)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pellet_rtg_weak, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.radaway, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.pill_iodine, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.geiger_counter, 1)); + + giveHaz(world, player); } if(this == ModItems.nuke_electric_kit) { - player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_coal_off), 2)); + /*player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_coal_off), 2)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_diesel), 1)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 64)); player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 64)); @@ -160,7 +277,39 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_copper, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_red_copper, 4)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_gold, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 4));*/ + + player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_copper, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_gold, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.coil_tungsten, 8)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.motor, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_aluminium, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_copper, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.circuit_red_copper, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.wiring_red_copper, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.magnetron, 5)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.piston_selenium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_fuel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.canister_biofuel, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_advanced_cell_4, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_lithium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_potato, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.limiter, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.screwdriver, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_coal_off, 3)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_diesel, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_selenium, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_cable, 64)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_wire_coated, 16)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.red_pylon, 8)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_battery, 4)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_lithium_battery, 2)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_he_rf, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_converter_rf_he, 1)); } if(this == ModItems.gadget_kit) @@ -172,6 +321,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_explosive8, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_wireing, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.gadget_core, 1)); + + giveHaz(world, player); } if(this == ModItems.boy_kit) @@ -182,6 +333,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.boy_bullet, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.boy_propellant, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.boy_igniter, 1)); + + giveHaz(world, player); } if(this == ModItems.man_kit) @@ -193,6 +346,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_igniter, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); + + giveHaz(world, player); } if(this == ModItems.mike_kit) @@ -206,6 +361,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_deut, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.mike_cooling_unit, 1)); + + giveHaz(world, player); } if(this == ModItems.tsar_kit) @@ -217,6 +374,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_explosive8, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.man_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.tsar_core, 1)); + + giveHaz(world, player); } if(this == ModItems.multi_kit) @@ -276,6 +435,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.fleija_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.fleija_core, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.fleija_core, 1)); + + giveHaz(world, player); } if(this == ModItems.solinium_kit) @@ -290,6 +451,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.solinium_propellant, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.solinium_propellant, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.solinium_core, 1)); + + giveHaz(world, player); } if(this == ModItems.prototype_kit) @@ -307,6 +470,8 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_lead, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_uranium, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.rod_quad_uranium, 1)); + + giveHaz(world, player); } if(this == ModItems.missile_kit) @@ -314,6 +479,7 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(Item.getItemFromBlock(ModBlocks.launch_pad), 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_range, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.designator_manual, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.battery_schrabidium_cell_4, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_generic, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.missile_strong, 1)); @@ -382,5 +548,42 @@ public class ItemStarterKit extends Item { return stack; } + + @SideOnly(Side.CLIENT) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + + if(this == ModItems.nuke_starter_kit || + this == ModItems.nuke_advanced_kit || + this == ModItems.nuke_commercially_kit || + this == ModItems.nuke_electric_kit || + this == ModItems.gadget_kit || + this == ModItems.boy_kit || + this == ModItems.man_kit || + this == ModItems.mike_kit || + this == ModItems.tsar_kit || + this == ModItems.prototype_kit || + this == ModItems.fleija_kit || + this == ModItems.solinium_kit || + this == ModItems.t45_kit || + this == ModItems.grenade_kit || + this == ModItems.missile_kit || + this == ModItems.multi_kit) { + list.add("Please empty inventory before opening!"); + } + if(this == ModItems.nuke_starter_kit || + this == ModItems.nuke_advanced_kit || + this == ModItems.nuke_commercially_kit || + this == ModItems.gadget_kit || + this == ModItems.boy_kit || + this == ModItems.man_kit || + this == ModItems.mike_kit || + this == ModItems.tsar_kit || + this == ModItems.prototype_kit || + this == ModItems.fleija_kit || + this == ModItems.solinium_kit) { + list.add("Armor will be displaced by hazmat suit."); + } + } } diff --git a/com/hbm/items/tool/ItemGeigerCounter.java b/com/hbm/items/tool/ItemGeigerCounter.java index afc943c3e..2cd2cd5c7 100644 --- a/com/hbm/items/tool/ItemGeigerCounter.java +++ b/com/hbm/items/tool/ItemGeigerCounter.java @@ -134,6 +134,24 @@ public class ItemGeigerCounter extends Item { if(b == ModBlocks.block_yellowcake) { i = 2; } + if(b == ModBlocks.sellafield_0) { + i = 10; + } + if(b == ModBlocks.sellafield_1) { + i = 20; + } + if(b == ModBlocks.sellafield_2) { + i = 30; + } + if(b == ModBlocks.sellafield_3) { + i = 40; + } + if(b == ModBlocks.sellafield_4) { + i = 50; + } + if(b == ModBlocks.sellafield_core) { + i = 500; + } return i * level; } diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index 0e9d4ce7f..d219e178c 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -16,6 +16,7 @@ import com.hbm.world.OilSandBubble; import com.hbm.world.Radio01; import com.hbm.world.Relay; import com.hbm.world.Satellite; +import com.hbm.world.Sellafield; import com.hbm.world.Silo; import com.hbm.world.Spaceship; import com.hbm.world.Vertibird; @@ -367,6 +368,20 @@ public class HbmWorldGen implements IWorldGenerator { if(MainRegistry.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + (y + 1) +" " + z); } + if (MainRegistry.enableRad && rand.nextInt(MainRegistry.radfreq) == 0 && biome == BiomeGenBase.desert) { + + for (int a = 0; a < 1; a++) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + + double r = rand.nextInt(15) + 10; + + if(rand.nextInt(50) == 0) + r = 35; + + new Sellafield().generate(world, x, z, r, r * 0.35D); + } + } } if (rand.nextInt(25) == 0) { diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index cc805c942..9c15b37ca 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -209,6 +209,7 @@ import com.hbm.tileentity.bomb.TileEntityNukePrototype; import com.hbm.tileentity.bomb.TileEntityNukeSolinium; import com.hbm.tileentity.bomb.TileEntityNukeTsar; import com.hbm.tileentity.bomb.TileEntityRedBarrel; +import com.hbm.tileentity.bomb.TileEntitySellafield; import com.hbm.tileentity.bomb.TileEntityTestBombAdvanced; import com.hbm.tileentity.bomb.TileEntityTestNuke; import com.hbm.tileentity.bomb.TileEntityTurretCIWS; @@ -446,6 +447,7 @@ public class MainRegistry public static boolean enableDungeons = true; public static boolean enableMDOres = true; public static boolean enableMines = true; + public static boolean enableRad = true; public static boolean enableNITAN = true; public static boolean enableNukeClouds = true; public static boolean enableAutoCleanup = false; @@ -496,6 +498,7 @@ public class MainRegistry public static int spaceshipStructure = 1000; public static int broadcaster = 5000; public static int minefreq = 64; + public static int radfreq = 5000; public static int meteorStrikeChance = 20 * 60 * 90; public static int meteorShowerChance = 20 * 60 * 3; public static int meteorShowerDuration = 6000; @@ -687,6 +690,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityBomber.class, "tileentity_bomber"); GameRegistry.registerTileEntity(TileEntityMachineTeleLinker.class, "tileentity_telemetry_linker"); GameRegistry.registerTileEntity(TileEntityMachineKeyForge.class, "tileentity_key_forge"); + GameRegistry.registerTileEntity(TileEntitySellafield.class, "tileentity_sellafield_core"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -806,9 +810,9 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 115, this, 250, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); + EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72); EntityRegistry.registerGlobalEntityID(EntityCyberCrab.class, "entity_cyber_crab", EntityRegistry.findGlobalUniqueEntityId(), 0xAAAAAA, 0x444444); - EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); ForgeChunkManager.setForcedChunkLoadingCallback(this, new LoadingCallback() { @@ -1400,13 +1404,14 @@ public class MainRegistry enableDungeons = config.get(Configuration.CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true).getBoolean(true); enableMDOres = config.get(Configuration.CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true).getBoolean(true); enableMines = config.get(Configuration.CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true).getBoolean(true); - enableNITAN = config.get(Configuration.CATEGORY_GENERAL, "1.06_enableNITANChestSpawn", true).getBoolean(true); - enableNukeClouds = config.get(Configuration.CATEGORY_GENERAL, "1.07_enableMushroomClouds", true).getBoolean(true); - enableAutoCleanup = config.get(Configuration.CATEGORY_GENERAL, "1.08_enableAutomaticRadCleanup", false).getBoolean(false); - enableMeteorStrikes = config.get(Configuration.CATEGORY_GENERAL, "1.09_enableMeteorStrikes", true).getBoolean(true); - enableMeteorShowers = config.get(Configuration.CATEGORY_GENERAL, "1.10_enableMeteorShowers", true).getBoolean(true); - enableMeteorTails = config.get(Configuration.CATEGORY_GENERAL, "1.11_enableMeteorTails", true).getBoolean(true); - enableSpecialMeteors = config.get(Configuration.CATEGORY_GENERAL, "1.12_enableSpecialMeteors", false).getBoolean(false); + enableRad = config.get(Configuration.CATEGORY_GENERAL, "1.06_enableRadHotspotSpawn", true).getBoolean(true); + enableNITAN = config.get(Configuration.CATEGORY_GENERAL, "1.07_enableNITANChestSpawn", true).getBoolean(true); + enableNukeClouds = config.get(Configuration.CATEGORY_GENERAL, "1.08_enableMushroomClouds", true).getBoolean(true); + enableAutoCleanup = config.get(Configuration.CATEGORY_GENERAL, "1.09_enableAutomaticRadCleanup", false).getBoolean(false); + enableMeteorStrikes = config.get(Configuration.CATEGORY_GENERAL, "1.10_enableMeteorStrikes", true).getBoolean(true); + enableMeteorShowers = config.get(Configuration.CATEGORY_GENERAL, "1.11_enableMeteorShowers", true).getBoolean(true); + enableMeteorTails = config.get(Configuration.CATEGORY_GENERAL, "1.12_enableMeteorTails", true).getBoolean(true); + enableSpecialMeteors = config.get(Configuration.CATEGORY_GENERAL, "1.13_enableSpecialMeteors", false).getBoolean(false); Property PuraniumSpawn = config.get(Configuration.CATEGORY_GENERAL, "2.00_uraniumSpawnrate", 7); PuraniumSpawn.comment = "Ammount of uranium ore veins per chunk"; @@ -1524,6 +1529,9 @@ public class MainRegistry Property propMines = config.get(Configuration.CATEGORY_GENERAL, "4.13_landmineSpawn", 64); propMines.comment = "Spawn AP landmine on every nTH chunk"; minefreq = propMines.getInt(); + Property propRad = config.get(Configuration.CATEGORY_GENERAL, "4.14_radHotsoptSpawn", 5000); + propRad.comment = "Spawn radiation hotspot on every nTH chunk"; + radfreq = propRad.getInt(); Property propMeteorStrikeChance = config.get(Configuration.CATEGORY_GENERAL, "5.00_meteorStrikeChance", 50000); propMeteorStrikeChance.comment = "The probability of a meteor spawning (an average of once every nTH ticks)"; diff --git a/com/hbm/render/tileentity/RenderLandmine.java b/com/hbm/render/tileentity/RenderLandmine.java index 9a82aa50e..8e9d2d7fe 100644 --- a/com/hbm/render/tileentity/RenderLandmine.java +++ b/com/hbm/render/tileentity/RenderLandmine.java @@ -25,6 +25,7 @@ public class RenderLandmine extends TileEntitySpecialRenderer { Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); if(block == ModBlocks.mine_ap) { + GL11.glTranslated(0, -0.075, 0); GL11.glScaled(1.5D, 1.5D, 1.5D); bindTexture(ResourceManager.mine_ap_tex); ResourceManager.mine_ap.renderAll(); diff --git a/com/hbm/tileentity/bomb/TileEntitySellafield.java b/com/hbm/tileentity/bomb/TileEntitySellafield.java new file mode 100644 index 000000000..1c3cdafeb --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntitySellafield.java @@ -0,0 +1,48 @@ +package com.hbm.tileentity.bomb; + +import java.util.List; + +import com.hbm.lib.Library; +import com.hbm.lib.ModDamageSource; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntitySellafield extends TileEntity { + + public double radius = 7.5D; + + @Override + public void updateEntity() { + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5D - radius, yCoord + 0.5D - radius, zCoord + 0.5D - radius, xCoord + 0.5D + radius, yCoord + 0.5D + radius, zCoord + 0.5D + radius)); + + for(Object o : list) { + + if(o instanceof EntityLivingBase) { + + EntityLivingBase entity = (EntityLivingBase) o; + + if(Math.sqrt(Math.pow(xCoord + 0.5D - entity.posX, 2) + Math.pow(yCoord + 0.5D - entity.posY, 2) + Math.pow(zCoord + 0.5D - entity.posZ, 2)) <= radius) { + Library.applyRadiation(entity, 5 * 60, 100, 4 * 60, 75); + entity.attackEntityFrom(ModDamageSource.radiation, entity.getHealth() * 0.5F); + } + } + } + } + + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + radius = nbt.getDouble("radius"); + } + + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setDouble("radius", radius); + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityCrateIron.java b/com/hbm/tileentity/machine/TileEntityCrateIron.java index 0fb41f184..5ae5bc221 100644 --- a/com/hbm/tileentity/machine/TileEntityCrateIron.java +++ b/com/hbm/tileentity/machine/TileEntityCrateIron.java @@ -14,7 +14,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -public class TileEntityCrateIron extends TileEntity implements ISidedInventory { +public class TileEntityCrateIron extends TileEntityLockableBase implements ISidedInventory { private ItemStack slots[]; diff --git a/com/hbm/tileentity/machine/TileEntityCrateSteel.java b/com/hbm/tileentity/machine/TileEntityCrateSteel.java index ad0b91d3b..cd2c6777b 100644 --- a/com/hbm/tileentity/machine/TileEntityCrateSteel.java +++ b/com/hbm/tileentity/machine/TileEntityCrateSteel.java @@ -7,7 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -public class TileEntityCrateSteel extends TileEntity implements ISidedInventory { +public class TileEntityCrateSteel extends TileEntityLockableBase implements ISidedInventory { private ItemStack slots[]; diff --git a/com/hbm/world/Sellafield.java b/com/hbm/world/Sellafield.java new file mode 100644 index 000000000..34706a350 --- /dev/null +++ b/com/hbm/world/Sellafield.java @@ -0,0 +1,84 @@ +package com.hbm.world; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.bomb.TileEntitySellafield; + +import net.minecraft.block.Block; +import net.minecraft.world.World; + +public class Sellafield { + + private double depthFunc(double x, double rad, double depth) { + + return -Math.pow(x, 2) / Math.pow(rad, 2) * depth + depth; + } + + public void generate(World world, int x, int z, double radius, double depth) { + + if(world.isRemote) + return; + + Random rand = new Random(); + + int iRad = (int)Math.round(radius); + + for(int a = -iRad - 5; a <= iRad + 5; a++) { + + for(int b = -iRad - 5; b <= iRad + 5; b++) { + + double r = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); + + if(r - rand.nextInt(3) <= radius) { + + int dep = (int)depthFunc(r, radius, depth); + dig(world, x + a, z + b, dep); + + if(r + rand.nextInt(3) <= radius / 6D) { + place(world, x + a, z + b, 3, ModBlocks.sellafield_4); + } else if(r - rand.nextInt(3) <= radius / 6D * 2D) { + place(world, x + a, z + b, 3, ModBlocks.sellafield_3); + } else if(r - rand.nextInt(3) <= radius / 6D * 3D) { + place(world, x + a, z + b, 3, ModBlocks.sellafield_2); + } else if(r - rand.nextInt(3) <= radius / 6D * 4D) { + place(world, x + a, z + b, 3, ModBlocks.sellafield_1); + } else if(r - rand.nextInt(3) <= radius / 6D * 5D) { + place(world, x + a, z + b, 3, ModBlocks.sellafield_0); + } else { + place(world, x + a, z + b, 3, ModBlocks.sellafield_slaked); + } + } + } + } + + place(world, x, z, 1, ModBlocks.sellafield_core); + } + + private void dig(World world, int x, int z, int depth) { + + int y = world.getHeightValue(x, z) - 1; + + if(y < depth * 2) + return; + + for(int i = 0; i < depth; i++) + world.setBlockToAir(x, y - i, z); + } + + private void place(World world, int x, int z, int depth, Block block) { + + int y = world.getHeightValue(x, z) - 1; + + for(int i = 0; i < depth; i++) + world.setBlock(x, y - i, z, block); + + /*try { + if(block == ModBlocks.sellafield_core) { + TileEntitySellafield te = (TileEntitySellafield) world.getTileEntity(x, y, z); + + te.radius = depth * 0.75D; + } + } catch(Exception ex) { }*/ + } +}