sellafite, radiation hotspots, rebalanced kits, made crates lockable

This commit is contained in:
HbmMods 2018-09-12 23:19:01 +02:00
parent 60294bf682
commit f882976396
26 changed files with 500 additions and 24 deletions

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 B

View File

@ -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());

View File

@ -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)

View File

@ -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();
}
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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++) {

View File

@ -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;
}

View File

@ -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.");
}
}
}

View File

@ -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;
}

View File

@ -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) {

View File

@ -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)";

View File

@ -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();

View File

@ -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);
}
}

View File

@ -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[];

View File

@ -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[];

View File

@ -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) { }*/
}
}