diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 581a7e1f7..fef8e925e 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -13,6 +13,10 @@ import com.hbm.blocks.machine.pile.BlockGraphiteRod; import com.hbm.blocks.machine.pile.BlockGraphiteSource; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.siege.SiegeCircuit; +import com.hbm.blocks.siege.SiegeHole; +import com.hbm.blocks.siege.SiegeInternal; +import com.hbm.blocks.siege.SiegeShield; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; @@ -195,6 +199,7 @@ public class ModBlocks { public static Block block_bismuth; public static Block block_coltan; public static Block block_tantalium; + public static Block block_niobium; public static Block block_trinitite; public static Block block_waste; public static Block block_waste_painted; @@ -319,6 +324,12 @@ public class ModBlocks { public static Block tile_lab_cracked; public static Block tile_lab_broken; + public static Block siege_shield; + public static Block siege_internal; + public static Block siege_circuit; + public static Block siege_emergency; + public static Block siege_hole; + public static Block block_meteor; public static Block block_meteor_cobble; public static Block block_meteor_broken; @@ -1335,6 +1346,7 @@ public class ModBlocks { block_bismuth = new BlockBeaconable(Material.iron).setBlockName("block_bismuth").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_bismuth"); block_coltan = new BlockBeaconable(Material.iron).setBlockName("block_coltan").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_coltan"); block_tantalium = new BlockBeaconable(Material.iron).setBlockName("block_tantalium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F).setBlockTextureName(RefStrings.MODID + ":block_tantalium"); + block_niobium = new BlockBeaconable(Material.iron).setBlockName("block_niobium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(30.0F); block_trinitite = new BlockHazard().makeBeaconable().addRadiation(ItemHazard.trn * ItemHazard.block).toBlock().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); @@ -1460,6 +1472,12 @@ public class ModBlocks { tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).addAsbestos(1).toBlock().setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); + siege_shield = new SiegeShield(Material.iron).setBlockName("siege_shield").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F); + siege_internal = new SiegeInternal(Material.iron).setBlockName("siege_internal").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(60.0F); + siege_circuit = new SiegeCircuit(Material.iron).setBlockName("siege_circuit").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F); + siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); + siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); + block_meteor = new BlockOre(Material.rock).setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); block_meteor_cobble = new BlockOre(Material.rock).setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); block_meteor_broken = new BlockOre(Material.rock).setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); @@ -1551,7 +1569,7 @@ public class ModBlocks { mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); mush_block_stem = new BlockMushHuge(Material.plants).setBlockName("mush_block_stem").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_stem"); - waste_earth = new WasteEarth(Material.ground, false).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); + waste_earth = new WasteEarth(Material.ground, true).setBlockName("waste_earth").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_earth"); waste_mycelium = new WasteEarth(Material.ground, true).setBlockName("waste_mycelium").setStepSound(Block.soundTypeGrass).setLightLevel(1F).setCreativeTab(MainRegistry.blockTab).setHardness(0.6F).setBlockTextureName(RefStrings.MODID + ":waste_mycelium_side"); waste_trinitite = new BlockOre(Material.sand).setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); waste_trinitite_red = new BlockOre(Material.sand).setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); @@ -1972,8 +1990,8 @@ public class ModBlocks { machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine"); machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus"); machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser"); - machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_tower_small"); - machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_tower_large"); + machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete"); anvil_iron = new NTMAnvil(Material.iron, 1).setBlockName("anvil_iron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_iron"); anvil_lead = new NTMAnvil(Material.iron, 1).setBlockName("anvil_lead").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":anvil_lead"); @@ -2296,6 +2314,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_bismuth, block_bismuth.getUnlocalizedName()); GameRegistry.registerBlock(block_coltan, block_coltan.getUnlocalizedName()); GameRegistry.registerBlock(block_tantalium, block_tantalium.getUnlocalizedName()); + GameRegistry.registerBlock(block_niobium, block_niobium.getUnlocalizedName()); GameRegistry.registerBlock(block_lithium, ItemBlockHazard.class, block_lithium.getUnlocalizedName()); GameRegistry.registerBlock(block_zirconium, block_zirconium.getUnlocalizedName()); GameRegistry.registerBlock(block_white_phosphorus, ItemBlockHazard.class, block_white_phosphorus.getUnlocalizedName()); @@ -2432,6 +2451,13 @@ public class ModBlocks { GameRegistry.registerBlock(spikes, spikes.getUnlocalizedName()); GameRegistry.registerBlock(tesla, tesla.getUnlocalizedName()); + //Siege blocks + GameRegistry.registerBlock(siege_shield, ItemBlockLore.class, siege_shield.getUnlocalizedName()); + GameRegistry.registerBlock(siege_internal, ItemBlockLore.class, siege_internal.getUnlocalizedName()); + GameRegistry.registerBlock(siege_circuit, ItemBlockLore.class, siege_circuit.getUnlocalizedName()); + GameRegistry.registerBlock(siege_emergency, siege_emergency.getUnlocalizedName()); + GameRegistry.registerBlock(siege_hole, siege_hole.getUnlocalizedName()); + //Decoration Blocks GameRegistry.registerBlock(block_meteor, block_meteor.getUnlocalizedName()); GameRegistry.registerBlock(block_meteor_cobble, block_meteor_cobble.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBeaconable.java b/src/main/java/com/hbm/blocks/generic/BlockBeaconable.java index c19de3c68..795114523 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBeaconable.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBeaconable.java @@ -1,10 +1,11 @@ package com.hbm.blocks.generic; -import net.minecraft.block.Block; +import com.hbm.blocks.BlockBase; + import net.minecraft.block.material.Material; import net.minecraft.world.IBlockAccess; -public class BlockBeaconable extends Block { +public class BlockBeaconable extends BlockBase { public BlockBeaconable(Material mat) { super(mat); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java b/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java index 02ef03941..b2de5b355 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java @@ -13,6 +13,7 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemTool; import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.util.Vec3; import net.minecraft.world.Explosion; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -52,23 +53,56 @@ public class BlockCoalOil extends Block { } public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - - if(player.getHeldItem() == null) - return; - - if(!(player.getHeldItem().getItem() instanceof ItemTool || player.getHeldItem().getItem() instanceof ItemToolAbility)) - return; - - ItemTool tool = (ItemTool) player.getHeldItem().getItem(); - - if(tool.func_150913_i() != ToolMaterial.WOOD) { - + + if(doesToolIgnite(player)) { if(world.rand.nextInt(10) == 0) world.setBlock(x, y, z, Blocks.fire); } } + public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { + + if(!world.isRemote) + return; + + if(doesToolIgnite(player)) { + + Random rand = world.rand; + for(int i = 0; i < 15; i++) { + Vec3 vec = Vec3.createVectorHelper(1, 0, 0); + vec.rotateAroundZ((float)(Math.PI * rand.nextDouble() * 2D)); + vec.rotateAroundY((float)(Math.PI * rand.nextDouble() * 2D)); + + double dX = vec.xCoord; + double dY = vec.yCoord; + double dZ = vec.zCoord; + + if(Math.abs(dX) > 1) + dX /= Math.abs(dX); + if(Math.abs(dY) > 1) + dY /= Math.abs(dY); + if(Math.abs(dX) > 1) + dZ /= Math.abs(dZ); + + world.spawnParticle("flame", x + 0.5 + dX * 0.75, y + 0.5 + dY * 0.75, z + 0.5 + dZ * 0.75, 0.0, 0.0, 0.0); + } + } + } + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { world.setBlock(x, y, z, Blocks.fire); } + + private boolean doesToolIgnite(EntityPlayer player) { + + if(player.getHeldItem() == null) + return false; + + if(!(player.getHeldItem().getItem() instanceof ItemTool || player.getHeldItem().getItem() instanceof ItemToolAbility)) + return false; + + ItemTool tool = (ItemTool) player.getHeldItem().getItem(); + + return tool.func_150913_i() != ToolMaterial.WOOD; + } } diff --git a/src/main/java/com/hbm/blocks/generic/WasteEarth.java b/src/main/java/com/hbm/blocks/generic/WasteEarth.java index 53b79131c..4d63444e7 100644 --- a/src/main/java/com/hbm/blocks/generic/WasteEarth.java +++ b/src/main/java/com/hbm/blocks/generic/WasteEarth.java @@ -95,7 +95,7 @@ public class WasteEarth extends Block { @Override public void updateTick(World world, int x, int y, int z, Random rand) { - + if(this == ModBlocks.waste_mycelium && GeneralConfig.enableMycelium) { for(int i = -1; i < 2; i++) { for(int j = -1; j < 2; j++) { @@ -115,7 +115,9 @@ public class WasteEarth extends Block { if(GeneralConfig.enableAutoCleanup || (world.getBlockLightValue(x, y + 1, z) < 4 && world.getBlockLightOpacity(x, y + 1, z) > 2)) { world.setBlock(x, y, z, Blocks.dirt); - } else if(world.getBlock(x, y + 1, z) instanceof BlockMushroom) { + } + + if(world.getBlock(x, y + 1, z) instanceof BlockMushroom) { world.setBlock(x, y + 1, z, ModBlocks.mush); } } diff --git a/src/main/java/com/hbm/blocks/siege/SiegeBase.java b/src/main/java/com/hbm/blocks/siege/SiegeBase.java new file mode 100644 index 000000000..fbab5ef47 --- /dev/null +++ b/src/main/java/com/hbm/blocks/siege/SiegeBase.java @@ -0,0 +1,73 @@ +package com.hbm.blocks.siege; + +import java.util.Random; + +import com.hbm.blocks.BlockBase; +import com.hbm.blocks.ModBlocks; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public abstract class SiegeBase extends BlockBase { + + private IIcon[] icons; + + public SiegeBase(Material material, int icons) { + super(material); + this.setTickRandomly(true); + this.icons = new IIcon[icons]; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + int h = x; + h *= 433 + y; + h *= 1709 + z; + h = Math.abs(h); + + h = (h >> 6); + + return this.getIcon(h % this.icons.length, 0); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return icons[side % this.icons.length]; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + + for(int i = 0; i < icons.length; i++) { + icons[i] = reg.registerIcon(this.getTextureName() + "_" + i); + } + } + + protected boolean solidNeighbors(World world, int x, int y, int z) { + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + if(b.getMaterial() == Material.air || !b.isNormalCube()) + return false; + } + + return true; + } + + protected boolean shouldReplace(Block b) { + return b != ModBlocks.siege_circuit && b != ModBlocks.siege_internal && b != ModBlocks.siege_shield; + } +} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java b/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java new file mode 100644 index 000000000..5b6db18d0 --- /dev/null +++ b/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java @@ -0,0 +1,23 @@ +package com.hbm.blocks.siege; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public class SiegeCircuit extends SiegeBase { + + public SiegeCircuit(Material material) { + super(material, 2); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + if(!this.solidNeighbors(world, x, y, z)) { + world.setBlock(x, y, z, ModBlocks.siege_emergency); + } + } +} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeHole.java b/src/main/java/com/hbm/blocks/siege/SiegeHole.java new file mode 100644 index 000000000..455676223 --- /dev/null +++ b/src/main/java/com/hbm/blocks/siege/SiegeHole.java @@ -0,0 +1,43 @@ +package com.hbm.blocks.siege; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.BlockBase; +import com.hbm.entity.mob.siege.EntitySiegeZombie; + +import net.minecraft.block.material.Material; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class SiegeHole extends BlockBase { + + public SiegeHole(Material material) { + super(material); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public int tickRate(World world) { + return 90 + world.rand.nextInt(20); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + + List list = world.getEntitiesWithinAABB(EntitySiegeZombie.class, AxisAlignedBB.getBoundingBox(x - 5, y - 2, z - 5, x + 6, y + 3, z + 6)); + + if(list.size() < 2) { + EntitySiegeZombie zomb = new EntitySiegeZombie(world); + zomb.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0.0F, 0.0F); + zomb.onSpawnWithEgg(null); + world.spawnEntityInWorld(zomb); + } + } +} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java b/src/main/java/com/hbm/blocks/siege/SiegeInternal.java new file mode 100644 index 000000000..669d42497 --- /dev/null +++ b/src/main/java/com/hbm/blocks/siege/SiegeInternal.java @@ -0,0 +1,42 @@ +package com.hbm.blocks.siege; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class SiegeInternal extends SiegeBase { + + public SiegeInternal(Material material) { + super(material, 2); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + //if exposed to air, harden + if(!this.solidNeighbors(world, x, y, z)) { + world.setBlock(x, y, z, ModBlocks.siege_emergency); + return; + } + + int succ = 0; + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + //if the bordering block is either an internal or a circuit, increment + if(b == this || b == ModBlocks.siege_circuit) { + succ++; + } + } + + //all neighbors are internals or circuits? turn into a circuit + if(succ == 6) + world.setBlock(x, y, z, ModBlocks.siege_circuit); + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/siege/SiegeShield.java b/src/main/java/com/hbm/blocks/siege/SiegeShield.java new file mode 100644 index 000000000..3499e222e --- /dev/null +++ b/src/main/java/com/hbm/blocks/siege/SiegeShield.java @@ -0,0 +1,53 @@ +package com.hbm.blocks.siege; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class SiegeShield extends SiegeBase { + + public SiegeShield(Material material) { + super(material, 4); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + int succ = 0; + + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + //if the block is already a siege block, do nothing and increment the success counter + if(!this.shouldReplace(b)) { + succ++; + + //...if not, check if a new shield can be placed, and try to do so + } else if(this.solidNeighbors(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { + succ++; + world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, this); + } + } + + //if all the blocks are siege blocks now, replace with an internal + if(succ == 6) { + world.setBlock(x, y, z, ModBlocks.siege_internal); + + if(rand.nextInt(10) == 0) { + Block above = world.getBlock(x, y + 2, z); + Block surface = world.getBlock(x, y + 3, z); + + //if the block above the upper shield is solid and *above that* is air, place a hole + if(above.getMaterial() != Material.air && above.isNormalCube() && (surface.getMaterial() == Material.air || !surface.isNormalCube())) { + world.setBlock(x, y + 2, z, ModBlocks.siege_hole); + } + } + } + } +} diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 067adf7a9..485ae0dbc 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -38,6 +38,7 @@ public class MineralRecipes { add1To9Pair(ModBlocks.block_smore, ModItems.ingot_smore); add1To9Pair(ModItems.nuclear_waste_vitrified, ModItems.nuclear_waste_vitrified_tiny); add1To9Pair(ModBlocks.block_waste_vitrified, ModItems.nuclear_waste_vitrified); + add1To9Pair(ModBlocks.block_niobium, ModItems.ingot_niobium); addMineralSet(ModItems.nugget_bismuth, ModItems.ingot_bismuth, ModBlocks.block_bismuth); addMineralSet(ModItems.nugget_tantalium, ModItems.ingot_tantalium, ModBlocks.block_tantalium); diff --git a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java index 08d4a0daa..f0dd248ff 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java @@ -7,30 +7,33 @@ import com.hbm.world.feature.Meteorite; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; +import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -public class EntityMeteor extends EntityThrowable { +public class EntityMeteor extends Entity { public EntityMeteor(World p_i1582_1_) { super(p_i1582_1_); this.ignoreFrustumCheck = true; this.isImmuneToFire = true; + this.setSize(4F, 4F); } @Override public void onUpdate() { - this.moveEntity(motionX, motionY, motionZ); + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; this.motionY -= 0.03; if(motionY < -2.5) motionY = -2.5; + + this.moveEntity(motionX, motionY, motionZ); - if(!this.worldObj.isRemote && this.onGround) { + if(!this.worldObj.isRemote && this.onGround && this.posY < 260) { worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5 + rand.nextFloat(), true); if(GeneralConfig.enableMeteorTails) { @@ -61,11 +64,6 @@ public class EntityMeteor extends EntityThrowable { } } - @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } - @Override @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { @@ -82,4 +80,13 @@ public class EntityMeteor extends EntityThrowable { public float getBrightness(float p_70013_1_) { return 1.0F; } + + @Override + protected void entityInit() { } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { } } diff --git a/src/main/java/com/hbm/inventory/AnvilRecipes.java b/src/main/java/com/hbm/inventory/AnvilRecipes.java index 1036fa3ac..6c3216c67 100644 --- a/src/main/java/com/hbm/inventory/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/AnvilRecipes.java @@ -159,6 +159,22 @@ public class AnvilRecipes { new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModBlocks.brick_concrete, 64), + new ComparableStack(Blocks.iron_bars, 128), + new ComparableStack(ModBlocks.machine_condenser, 5), + }, + new AnvilOutput(new ItemStack(ModBlocks.machine_tower_small))).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(ModBlocks.concrete_smooth, 128), + new ComparableStack(ModBlocks.steel_scaffold, 32), + new ComparableStack(ModBlocks.machine_condenser, 25), + new ComparableStack(ModItems.pipes_steel, 2) + }, + new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { @@ -262,6 +278,7 @@ public class AnvilRecipes { {ModItems.ammo_50bmg_du, ModItems.ingot_starmetal, ModItems.ammo_50bmg_star, 10, 3}, {ModItems.ammo_50bmg, ModItems.pellet_chlorophyte, ModItems.ammo_50bmg_chlorophyte, 10, 3}, {ModItems.ammo_50bmg, ModItems.coin_maskman, ModItems.ammo_50bmg_sleek, 100, 4}, + {ModItems.ammo_50bmg, ModItems.pellet_flechette, ModItems.ammo_50bmg_flechette, 20, 2}, {ModItems.ammo_50bmg_flechette, ModItems.nugget_am_mix, ModItems.ammo_50bmg_flechette_am, 10, 3}, {ModItems.ammo_50bmg_flechette, ModItems.powder_polonium, ModItems.ammo_50bmg_flechette_po, 20, 3}, @@ -449,7 +466,7 @@ public class AnvilRecipes { new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.billet_ra226be, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 2))}).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModItems.pile_rod_boron), - new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_boron, 3)), new AnvilOutput(new ItemStack(Items.stick, 2))}).setTier(3)); + new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_boron, 2)), new AnvilOutput(new ItemStack(Items.stick, 2))}).setTier(3)); } public static void pullFromAssembler(ComparableStack result, int tier) { diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 5baff27e7..603c7f738 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -5,301 +5,104 @@ import com.hbm.config.GeneralConfig; import com.hbm.interfaces.Untested; import com.hbm.items.ModItems; +import net.minecraft.block.Block; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraftforge.oredict.OreDictionary; public class OreDictManager { public static void registerOres() { - - OreDictionary.registerOre("ingotUranium", ModItems.ingot_uranium); - OreDictionary.registerOre("ingotUranium233", ModItems.ingot_u233); - OreDictionary.registerOre("ingotUranium235", ModItems.ingot_u235); - OreDictionary.registerOre("ingotUranium238", ModItems.ingot_u238); - OreDictionary.registerOre("ingotThorium", ModItems.ingot_th232); - OreDictionary.registerOre("ingotThorium232", ModItems.ingot_th232); - OreDictionary.registerOre("ingotPlutonium", ModItems.ingot_plutonium); - OreDictionary.registerOre("ingotPlutonium238", ModItems.ingot_pu238); - OreDictionary.registerOre("ingotPlutonium239", ModItems.ingot_pu239); - OreDictionary.registerOre("ingotPlutonium240", ModItems.ingot_pu240); - OreDictionary.registerOre("ingotPlutonium241", ModItems.ingot_pu241); - OreDictionary.registerOre("ingotAmericium241", ModItems.ingot_am241); - OreDictionary.registerOre("ingotAmericium242", ModItems.ingot_am242); - OreDictionary.registerOre("ingotNeptunium237", ModItems.ingot_neptunium); - OreDictionary.registerOre("ingotTechnetium99", ModItems.ingot_technetium); - OreDictionary.registerOre("U233", ModItems.ingot_u233); - OreDictionary.registerOre("U235", ModItems.ingot_u235); - OreDictionary.registerOre("U238", ModItems.ingot_u238); - OreDictionary.registerOre("Th232", ModItems.ingot_th232); - OreDictionary.registerOre("Pu238", ModItems.ingot_pu238); - OreDictionary.registerOre("Pu239", ModItems.ingot_pu239); - OreDictionary.registerOre("Pu240", ModItems.ingot_pu240); - OreDictionary.registerOre("Pu241", ModItems.ingot_pu241); - OreDictionary.registerOre("Am241", ModItems.ingot_am241); - OreDictionary.registerOre("Am242", ModItems.ingot_am242); - OreDictionary.registerOre("Np237", ModItems.ingot_neptunium); - OreDictionary.registerOre("ingotPolonium", ModItems.ingot_polonium); - OreDictionary.registerOre("ingotSchrabidium", ModItems.ingot_schrabidium); - OreDictionary.registerOre("ingotTitanium", ModItems.ingot_titanium); - OreDictionary.registerOre("ingotSteel", ModItems.ingot_steel); - OreDictionary.registerOre("ingotCopper", ModItems.ingot_copper); - OreDictionary.registerOre("ingotMingrade", ModItems.ingot_red_copper); - OreDictionary.registerOre("ingotAdvanced", ModItems.ingot_advanced_alloy); - OreDictionary.registerOre("ingotAdvancedAlloy", ModItems.ingot_advanced_alloy); - OreDictionary.registerOre("ingotTungsten", ModItems.ingot_tungsten); - OreDictionary.registerOre("ingotAluminum", ModItems.ingot_aluminium); - OreDictionary.registerOre("ingotBeryllium", ModItems.ingot_beryllium); - OreDictionary.registerOre("ingotCobalt", ModItems.ingot_cobalt); - OreDictionary.registerOre("ingotLead", ModItems.ingot_lead); - OreDictionary.registerOre("ingotLithium", ModItems.lithium); - OreDictionary.registerOre("ingotMagnetizedTungsten", ModItems.ingot_magnetized_tungsten); - OreDictionary.registerOre("ingotCMBSteel", ModItems.ingot_combine_steel); - OreDictionary.registerOre("ingotAustralium", ModItems.ingot_australium); - OreDictionary.registerOre("ingotDuraSteel", ModItems.ingot_dura_steel); - OreDictionary.registerOre("ingotPolymer", ModItems.ingot_polymer); - OreDictionary.registerOre("ingotLanthanium", ModItems.ingot_lanthanium); - OreDictionary.registerOre("ingotActinium", ModItems.ingot_actinium); - OreDictionary.registerOre("ingotDesh", ModItems.ingot_desh); - OreDictionary.registerOre("ingotSaturnite", ModItems.ingot_saturnite); - OreDictionary.registerOre("ingotEuphemium", ModItems.ingot_euphemium); - OreDictionary.registerOre("ingotDineutronium", ModItems.ingot_dineutronium); - OreDictionary.registerOre("ingotStarmetal", ModItems.ingot_starmetal); - OreDictionary.registerOre("ingotAsbestos", ModItems.ingot_asbestos); - OreDictionary.registerOre("ingotZirconium", ModItems.ingot_zirconium); - OreDictionary.registerOre("ingotBoron", ModItems.ingot_boron); - OreDictionary.registerOre("ingotTcAlloy", ModItems.ingot_tcalloy); - OreDictionary.registerOre("ingotGold198", ModItems.ingot_au198); - OreDictionary.registerOre("ingotColtan", ModItems.fragment_coltan); - OreDictionary.registerOre("ingotTantalum", ModItems.ingot_tantalium); - OreDictionary.registerOre("ingotNiobium", ModItems.ingot_niobium); - - OreDictionary.registerOre("crystalCinnabar", ModItems.cinnebar); - OreDictionary.registerOre("nuggetLead", ModItems.nugget_lead); - OreDictionary.registerOre("nuggetBeryllium", ModItems.nugget_beryllium); - OreDictionary.registerOre("nuggetUranium", ModItems.nugget_uranium); - OreDictionary.registerOre("nuggetUranium233", ModItems.nugget_u233); - OreDictionary.registerOre("nuggetUranium235", ModItems.nugget_u235); - OreDictionary.registerOre("nuggetUranium238", ModItems.nugget_u238); - OreDictionary.registerOre("nuggetThorium", ModItems.nugget_th232); - OreDictionary.registerOre("nuggetThorium232", ModItems.nugget_th232); - OreDictionary.registerOre("nuggetPlutonium", ModItems.nugget_plutonium); - OreDictionary.registerOre("nuggetPlutonium238", ModItems.nugget_pu238); - OreDictionary.registerOre("nuggetPlutonium239", ModItems.nugget_pu239); - OreDictionary.registerOre("nuggetPlutonium240", ModItems.nugget_pu240); - OreDictionary.registerOre("nuggetPlutonium241", ModItems.nugget_pu241); - OreDictionary.registerOre("nuggetAmericium241", ModItems.nugget_am241); - OreDictionary.registerOre("nuggetAmericium242", ModItems.nugget_am242); - OreDictionary.registerOre("nuggetAustralium", ModItems.nugget_australium); - OreDictionary.registerOre("nuggetEuphemium", ModItems.nugget_euphemium); - OreDictionary.registerOre("nuggetNeptunium237", ModItems.nugget_neptunium); - OreDictionary.registerOre("nuggetTechnetium99", ModItems.nugget_technetium); - OreDictionary.registerOre("nuggetPolonium", ModItems.nugget_polonium); - OreDictionary.registerOre("nuggetSchrabidium", ModItems.nugget_schrabidium); - OreDictionary.registerOre("nuggetZirconium", ModItems.nugget_zirconium); - OreDictionary.registerOre("nuggetRadium226", ModItems.nugget_ra226); - OreDictionary.registerOre("nuggetGold198", ModItems.nugget_au198); - OreDictionary.registerOre("tinyU233", ModItems.nugget_u233); - OreDictionary.registerOre("tinyU235", ModItems.nugget_u235); - OreDictionary.registerOre("tinyU238", ModItems.nugget_u238); - OreDictionary.registerOre("tinyTh232", ModItems.nugget_th232); - OreDictionary.registerOre("tinyPu238", ModItems.nugget_pu238); - OreDictionary.registerOre("tinyPu239", ModItems.nugget_pu239); - OreDictionary.registerOre("tinyPu240", ModItems.nugget_pu240); - OreDictionary.registerOre("tinyPu241", ModItems.nugget_pu241); - OreDictionary.registerOre("tinyAm241", ModItems.nugget_am241); - OreDictionary.registerOre("tinyAm242", ModItems.nugget_am242); - OreDictionary.registerOre("tinyNp237", ModItems.nugget_neptunium); - OreDictionary.registerOre("tinyTc99", ModItems.nugget_technetium); - OreDictionary.registerOre("tinyRa226", ModItems.nugget_ra226); - - OreDictionary.registerOre("nuggetNeodymium", ModItems.fragment_neodymium); - OreDictionary.registerOre("nuggetCobalt", ModItems.fragment_cobalt); - OreDictionary.registerOre("nuggetNiobium", ModItems.fragment_niobium); - OreDictionary.registerOre("nuggetCerium", ModItems.fragment_cerium); - OreDictionary.registerOre("nuggetLanthanium", ModItems.fragment_lanthanium); - OreDictionary.registerOre("nuggetActinium", ModItems.fragment_actinium); - OreDictionary.registerOre("nuggetBoron", ModItems.fragment_boron); - OreDictionary.registerOre("nuggetTantalum", ModItems.nugget_tantalium); + new DictFrame("Coal").gem(Items.coal).dustSmall(ModItems.powder_coal_tiny).dust(ModItems.powder_coal); + new DictFrame("Iron").plate(ModItems.plate_iron).dust(ModItems.powder_iron).ore(ModBlocks.ore_gneiss_iron); + new DictFrame("Gold").plate(ModItems.plate_gold).dust(ModItems.powder_gold).ore(ModBlocks.ore_gneiss_gold); + new DictFrame("Lapis").dust(ModItems.powder_lapis); + new DictFrame("NetherQuartz").gem(Items.quartz).dust(ModItems.powder_quartz); + new DictFrame("Diamond").dust(ModItems.powder_diamond).ore(ModBlocks.gravel_diamond); + new DictFrame("Emerald").dust(ModItems.powder_emerald); - OreDictionary.registerOre("dustIron", ModItems.powder_iron); - OreDictionary.registerOre("dustGold", ModItems.powder_gold); - OreDictionary.registerOre("dustUranium", ModItems.powder_uranium); - OreDictionary.registerOre("dustThorium", ModItems.powder_thorium); - OreDictionary.registerOre("dustPlutonium", ModItems.powder_plutonium); - OreDictionary.registerOre("dustTitanium", ModItems.powder_titanium); - OreDictionary.registerOre("dustTungsten", ModItems.powder_tungsten); - OreDictionary.registerOre("dustCopper", ModItems.powder_copper); - OreDictionary.registerOre("dustBeryllium", ModItems.powder_beryllium); - OreDictionary.registerOre("dustAluminum", ModItems.powder_aluminium); - OreDictionary.registerOre("dustDiamond", ModItems.powder_diamond); - OreDictionary.registerOre("dustEmerald", ModItems.powder_emerald); - OreDictionary.registerOre("dustLapis", ModItems.powder_lapis); - OreDictionary.registerOre("dustCoal", ModItems.powder_coal); - OreDictionary.registerOre("dustLignite", ModItems.powder_lignite); - OreDictionary.registerOre("dustAdvanced", ModItems.powder_advanced_alloy); - OreDictionary.registerOre("dustAdvancedAlloy", ModItems.powder_advanced_alloy); - OreDictionary.registerOre("dustCMBSteel", ModItems.powder_combine_steel); - OreDictionary.registerOre("dustMagnetizedTungsten", ModItems.powder_magnetized_tungsten); - OreDictionary.registerOre("dustMingrade", ModItems.powder_red_copper); - OreDictionary.registerOre("dustSteel", ModItems.powder_steel); - OreDictionary.registerOre("dustLithium", ModItems.powder_lithium); - OreDictionary.registerOre("dustNetherQuartz", ModItems.powder_quartz); - OreDictionary.registerOre("dustAustralium", ModItems.powder_australium); - OreDictionary.registerOre("dustDuraSteel", ModItems.powder_dura_steel); - OreDictionary.registerOre("dustPolymer", ModItems.powder_polymer); - OreDictionary.registerOre("dustLanthanium", ModItems.powder_lanthanium); - OreDictionary.registerOre("dustActinium", ModItems.powder_actinium); - OreDictionary.registerOre("dustDesh", ModItems.powder_desh); - OreDictionary.registerOre("dustEuphemium", ModItems.powder_euphemium); - OreDictionary.registerOre("dustDineutronium", ModItems.powder_dineutronium); - OreDictionary.registerOre("dustSchrabidium", ModItems.powder_schrabidium); - OreDictionary.registerOre("dustSulfur", ModItems.sulfur); - OreDictionary.registerOre("dustNiter", ModItems.niter); - OreDictionary.registerOre("dustSaltpeter", ModItems.niter); - OreDictionary.registerOre("dustLead", ModItems.powder_lead); - OreDictionary.registerOre("dustNeptunium237", ModItems.powder_neptunium); - OreDictionary.registerOre("dustPolonium", ModItems.powder_polonium); - OreDictionary.registerOre("dustAsbestos", ModItems.powder_asbestos); - OreDictionary.registerOre("dustPhosphorus", ModItems.powder_fire); - OreDictionary.registerOre("dustZirconium", ModItems.powder_zirconium); - OreDictionary.registerOre("dustBoron", ModItems.powder_boron); - OreDictionary.registerOre("dustTcAlloy", ModItems.powder_tcalloy); - OreDictionary.registerOre("dustGol198", ModItems.powder_au198); - OreDictionary.registerOre("dustColtan", ModItems.powder_coltan_ore); - OreDictionary.registerOre("dustTantalum", ModItems.powder_tantalium); + new DictFrame("Uranium").nugget(ModItems.nugget_uranium).billet(ModItems.billet_uranium).ingot(ModItems.ingot_uranium).dust(ModItems.powder_uranium).block(ModBlocks.block_uranium) + .ore(ModBlocks.ore_uranium, ModBlocks.ore_uranium_scorched, ModBlocks.ore_gneiss_uranium, ModBlocks.ore_gneiss_uranium_scorched, ModBlocks.ore_nether_uranium, ModBlocks.ore_nether_uranium_scorched, ModBlocks.ore_meteor_uranium); + new DictFrame("Uranium233", "U233").nugget(ModItems.nugget_u233).billet(ModItems.billet_u233).ingot(ModItems.ingot_u233).block(ModBlocks.block_u233); + new DictFrame("Uranium235", "U235").nugget(ModItems.nugget_u235).billet(ModItems.billet_u235).ingot(ModItems.ingot_u235).block(ModBlocks.block_u235); + new DictFrame("Uranium238", "U238").nugget(ModItems.nugget_u238).billet(ModItems.billet_u238).ingot(ModItems.ingot_u238).block(ModBlocks.block_u238); + new DictFrame("Thorium232", "Th232").nugget(ModItems.nugget_th232).billet(ModItems.billet_th232).ingot(ModItems.ingot_th232).dust(ModItems.powder_thorium).block(ModBlocks.block_thorium).ore(ModBlocks.ore_thorium, ModBlocks.ore_meteor_thorium); + new DictFrame("Plutonium").nugget(ModItems.nugget_plutonium).billet(ModItems.billet_plutonium).ingot(ModItems.ingot_plutonium).dust(ModItems.powder_plutonium).block(ModBlocks.block_plutonium).ore(ModBlocks.ore_nether_plutonium); + new DictFrame("Plutonium238", "Pu238").nugget(ModItems.nugget_pu238).billet(ModItems.billet_pu238).ingot(ModItems.ingot_pu238).block(ModBlocks.block_pu238); + new DictFrame("Plutonium239", "Pu239").nugget(ModItems.nugget_pu239).billet(ModItems.billet_pu239).ingot(ModItems.ingot_pu239).block(ModBlocks.block_pu239); + new DictFrame("Plutonium240", "Pu240").nugget(ModItems.nugget_pu240).billet(ModItems.billet_pu240).ingot(ModItems.ingot_pu240).block(ModBlocks.block_pu240); + new DictFrame("Plutonium241", "Pu241").nugget(ModItems.nugget_pu241).billet(ModItems.billet_pu241).ingot(ModItems.ingot_pu241);//.block(ModBlocks.block_pu241); + new DictFrame("Americium241", "Am241").nugget(ModItems.nugget_am241).billet(ModItems.billet_am241).ingot(ModItems.ingot_am241); + new DictFrame("Americium242", "Am242").nugget(ModItems.nugget_am242).billet(ModItems.billet_am242).ingot(ModItems.ingot_am242); + new DictFrame("Neptunium237", "Np237").nugget(ModItems.nugget_neptunium).billet(ModItems.billet_neptunium).ingot(ModItems.ingot_neptunium).dust(ModItems.powder_neptunium).block(ModBlocks.block_neptunium); + new DictFrame("Polonium210", "Po210").nugget(ModItems.nugget_polonium).billet(ModItems.billet_polonium).ingot(ModItems.ingot_polonium).dust(ModItems.powder_polonium).block(ModBlocks.block_polonium); + new DictFrame("Technetium99", "Tc99").nugget(ModItems.nugget_technetium).billet(ModItems.billet_technetium).ingot(ModItems.ingot_technetium); + new DictFrame("Radium226", "Ra226").nugget(ModItems.nugget_ra226); + new DictFrame("Cobalt60", "Co60").nugget(ModItems.nugget_co60).billet(ModItems.billet_co60).ingot(ModItems.ingot_co60).dust(ModItems.powder_co60); + new DictFrame("Gold198", "Au198").nugget(ModItems.nugget_au198).billet(ModItems.billet_au198).ingot(ModItems.ingot_au198).dust(ModItems.powder_au198); + new DictFrame("Titanium").ingot(ModItems.ingot_titanium).dust(ModItems.powder_titanium).plate(ModItems.plate_titanium).block(ModBlocks.block_titanium).ore(ModBlocks.ore_titanium, ModBlocks.ore_meteor_titanium); + new DictFrame("Copper").ingot(ModItems.ingot_copper).dust(ModItems.powder_copper).plate(ModItems.plate_copper).block(ModBlocks.block_copper).ore(ModBlocks.ore_copper, ModBlocks.ore_gneiss_copper, ModBlocks.ore_meteor_copper); + new DictFrame("Mingrade").ingot(ModItems.ingot_red_copper).dust(ModItems.powder_red_copper).plate(ModItems.plate_advanced_alloy).block(ModBlocks.block_red_copper); + new DictFrame("AdvancedAlloy").ingot(ModItems.ingot_advanced_alloy).dust(ModItems.powder_advanced_alloy).block(ModBlocks.block_advanced_alloy); + new DictFrame("Tungsten").ingot(ModItems.ingot_tungsten).dust(ModItems.powder_tungsten).block(ModBlocks.block_tungsten).ore(ModBlocks.ore_tungsten, ModBlocks.ore_nether_tungsten, ModBlocks.ore_meteor_tungsten); + new DictFrame("Aluminum").ingot(ModItems.ingot_aluminium).dust(ModItems.powder_aluminium).plate(ModItems.plate_aluminium).block(ModBlocks.block_aluminium).ore(ModBlocks.ore_aluminium, ModBlocks.ore_meteor_aluminium); + new DictFrame("Steel").ingot(ModItems.ingot_steel).dustSmall(ModItems.powder_steel_tiny).dust(ModItems.powder_steel).plate(ModItems.plate_steel).block(ModBlocks.block_steel); + new DictFrame("TcAlloy").ingot(ModItems.ingot_tcalloy).dust(ModItems.powder_tcalloy); + new DictFrame("Lead").nugget(ModItems.nugget_lead).ingot(ModItems.ingot_lead).dust(ModItems.powder_lead).plate(ModItems.plate_lead).block(ModBlocks.block_lead).ore(ModBlocks.ore_lead, ModBlocks.ore_meteor_lead); + //new DictFrame("Bismuth").nugget(ModItems.nugget_bismuth).ingot(ModItems.ingot_bismuth); THAT'S WHAT YOU THOUGHT! + new DictFrame("Tantalum").nugget(ModItems.nugget_tantalium).gem(ModItems.gem_tantalium).ingot(ModItems.ingot_tantalium).dust(ModItems.powder_tantalium).block(ModBlocks.block_tantalium); + new DictFrame("Coltan").ingot(ModItems.fragment_coltan).dust(ModItems.powder_coltan_ore).block(ModBlocks.block_coltan).ore(ModBlocks.ore_coltan); + new DictFrame("Niobium").nugget(ModItems.fragment_niobium).ingot(ModItems.ingot_niobium).dustSmall(ModItems.powder_niobium_tiny).dust(ModItems.powder_niobium).block(ModBlocks.block_niobium); + new DictFrame("Beryllium").nugget(ModItems.nugget_beryllium).ingot(ModItems.ingot_beryllium).dust(ModItems.powder_beryllium).block(ModBlocks.block_beryllium).ore(ModBlocks.ore_beryllium); + new DictFrame("Cobalt").nugget(ModItems.fragment_cobalt).ingot(ModItems.ingot_cobalt).dustSmall(ModItems.powder_cobalt_tiny).dust(ModItems.powder_cobalt).block(ModBlocks.block_cobalt).ore(ModBlocks.ore_cobalt, ModBlocks.ore_nether_cobalt); + new DictFrame("Boron").nugget(ModItems.fragment_boron).ingot(ModItems.ingot_boron).dustSmall(ModItems.powder_boron_tiny).dust(ModItems.powder_boron).block(ModBlocks.block_boron); + new DictFrame("Graphite").ingot(ModItems.ingot_graphite).block(ModBlocks.block_graphite); + new DictFrame("DuraSteel").ingot(ModItems.ingot_dura_steel).dust(ModItems.powder_dura_steel).block(ModBlocks.block_dura_steel); + new DictFrame("Polymer").ingot(ModItems.ingot_polymer).dust(ModItems.powder_polymer); + new DictFrame("Schrabidium").nugget(ModItems.nugget_schrabidium).billet(ModItems.billet_schrabidium).ingot(ModItems.ingot_schrabidium).plate(ModItems.plate_schrabidium).dust(ModItems.powder_schrabidium).block(ModBlocks.block_schrabidium).ore(ModBlocks.ore_schrabidium, ModBlocks.ore_gneiss_schrabidium, ModBlocks.ore_nether_schrabidium); + new DictFrame("Schrabidate").ingot(ModItems.ingot_schrabidate).dust(ModItems.powder_schrabidate).block(ModBlocks.block_schrabidate); + new DictFrame("MagnetizedTungsten").ingot(ModItems.ingot_magnetized_tungsten).dust(ModItems.powder_magnetized_tungsten).block(ModBlocks.block_magnetized_tungsten); + new DictFrame("CMBSteel").ingot(ModItems.ingot_combine_steel).dust(ModItems.powder_combine_steel).block(ModBlocks.block_combine_steel); + new DictFrame("Solinium").nugget(ModItems.nugget_solinium).billet(ModItems.billet_solinium).ingot(ModItems.ingot_solinium).block(ModBlocks.block_solinium); + new DictFrame("Lanthanum").nugget(ModItems.fragment_lanthanium).ingot(ModItems.ingot_lanthanium).dustSmall(ModItems.powder_lanthanium_tiny).dust(ModItems.powder_lanthanium).block(ModBlocks.block_lanthanium); + new DictFrame("Actinium").nugget(ModItems.fragment_actinium).ingot(ModItems.ingot_actinium).dustSmall(ModItems.powder_actinium_tiny).dust(ModItems.powder_actinium).block(ModBlocks.block_actinium); + new DictFrame("Desh").nugget(ModItems.nugget_desh).ingot(ModItems.ingot_desh).dust(ModItems.powder_desh).block(ModBlocks.block_desh); + new DictFrame("Starmetal").ingot(ModItems.ingot_starmetal).block(ModBlocks.block_starmetal).ore(ModBlocks.ore_meteor_starmetal); + new DictFrame("Saturnite").ingot(ModItems.ingot_saturnite).plate(ModItems.plate_saturnite); + new DictFrame("Euphemium").nugget(ModItems.nugget_euphemium).ingot(ModItems.ingot_euphemium).dust(ModItems.powder_euphemium).block(ModBlocks.block_euphemium); + new DictFrame("Dineutronium").nugget(ModItems.nugget_dineutronium).ingot(ModItems.ingot_dineutronium).dust(ModItems.powder_dineutronium).block(ModBlocks.block_dineutronium); + new DictFrame("WhitePhosphorus").ingot(ModItems.ingot_phosphorus).block(ModBlocks.block_white_phosphorus); + new DictFrame("RedPhosphorus").dust(ModItems.powder_fire).block(ModBlocks.block_red_phosphorus); + new DictFrame("Lithium").ingot(ModItems.lithium).dustSmall(ModItems.powder_lithium_tiny).dust(ModItems.powder_lithium).block(ModBlocks.block_lithium).ore(ModBlocks.ore_gneiss_lithium, ModBlocks.ore_meteor_lithium); + new DictFrame("Zirconium").nugget(ModItems.nugget_zirconium).ingot(ModItems.ingot_zirconium).dust(ModItems.powder_zirconium).block(ModBlocks.block_zirconium).ore(ModBlocks.ore_depth_zirconium); + new DictFrame("Fiberglass").ingot(ModItems.ingot_fiberglass).block(ModBlocks.block_fiberglass); + new DictFrame("Asbestos").ingot(ModItems.ingot_asbestos).dust(ModItems.powder_asbestos).block(ModBlocks.block_asbestos).ore(ModBlocks.ore_asbestos, ModBlocks.ore_gneiss_asbestos, ModBlocks.basalt_asbestos); + new DictFrame("Cinnabar").crystal(ModItems.cinnebar).gem(ModItems.cinnebar).ore(ModBlocks.ore_cinnebar, ModBlocks.ore_depth_cinnebar); + new DictFrame("Lignite").gem(ModItems.lignite).dust(ModItems.powder_lignite).ore(ModBlocks.ore_lignite); + new DictFrame("Sulfur").dust(ModItems.sulfur).block(ModBlocks.block_sulfur).ore(ModBlocks.ore_sulfur, ModBlocks.ore_nether_sulfur, ModBlocks.basalt_sulfur, ModBlocks.ore_meteor_sulfur); + new DictFrame("Niter").dust(ModItems.niter).block(ModBlocks.block_niter).ore(ModBlocks.ore_niter); + new DictFrame("Fluorite").dust(ModItems.fluorite).block(ModBlocks.block_fluorite).ore(ModBlocks.ore_fluorite, ModBlocks.basalt_fluorite); + new DictFrame("Volcanic").gem(ModItems.gem_volcanic).ore(ModBlocks.basalt_gem); - OreDictionary.registerOre("dustNeptunium", ModItems.powder_neptunium); - OreDictionary.registerOre("dustIodine", ModItems.powder_iodine); - OreDictionary.registerOre("dustThorium", ModItems.powder_thorium); - OreDictionary.registerOre("dustAstatine", ModItems.powder_astatine); - OreDictionary.registerOre("dustNeodymium", ModItems.powder_neodymium); - OreDictionary.registerOre("dustCaesium", ModItems.powder_caesium); - OreDictionary.registerOre("dustStrontium", ModItems.powder_strontium); - OreDictionary.registerOre("dustCobalt", ModItems.powder_cobalt); - OreDictionary.registerOre("dustBromine", ModItems.powder_bromine); - OreDictionary.registerOre("dustNiobium", ModItems.powder_niobium); - OreDictionary.registerOre("dustTennessine", ModItems.powder_tennessine); - OreDictionary.registerOre("dustCerium", ModItems.powder_cerium); + new DictFrame("Australium").nugget(ModItems.nugget_australium).billet(ModItems.billet_australium).ingot(ModItems.ingot_australium).dust(ModItems.powder_australium).block(ModBlocks.block_australium).ore(ModBlocks.ore_australium); + new DictFrame("Reiium").nugget(ModItems.nugget_reiium).ingot(ModItems.ingot_reiium).dust(ModItems.powder_reiium).block(ModBlocks.block_reiium).ore(ModBlocks.ore_reiium); + new DictFrame("Weidanium").nugget(ModItems.nugget_weidanium).ingot(ModItems.ingot_weidanium).dust(ModItems.powder_weidanium).block(ModBlocks.block_weidanium).ore(ModBlocks.ore_weidanium); + new DictFrame("Unobtainium").nugget(ModItems.nugget_unobtainium).ingot(ModItems.ingot_unobtainium).dust(ModItems.powder_unobtainium).block(ModBlocks.block_unobtainium).ore(ModBlocks.ore_unobtainium); + new DictFrame("Verticium").nugget(ModItems.nugget_verticium).ingot(ModItems.ingot_verticium).dust(ModItems.powder_verticium).block(ModBlocks.block_verticium).ore(ModBlocks.ore_verticium); + new DictFrame("Daffergon").nugget(ModItems.nugget_daffergon).ingot(ModItems.ingot_daffergon).dust(ModItems.powder_daffergon).block(ModBlocks.block_daffergon).ore(ModBlocks.ore_daffergon); + + new DictFrame("Neodymium").nugget(ModItems.fragment_neodymium).dustSmall(ModItems.powder_neodymium_tiny).dust(ModItems.powder_neodymium).ore(ModBlocks.ore_depth_nether_neodymium); + new DictFrame("Cerium").nugget(ModItems.fragment_cerium).dustSmall(ModItems.powder_cerium_tiny).dust(ModItems.powder_cerium); + new DictFrame("Iodine").dust(ModItems.powder_iodine); + new DictFrame("Astatine").dust(ModItems.powder_astatine); + + new DictFrame("Iodine131", "I131").dustSmall(ModItems.powder_i131_tiny).dust(ModItems.powder_i131); + new DictFrame("Xenon135", "Xe135").dustSmall(ModItems.powder_xe135_tiny).dust(ModItems.powder_xe135); + new DictFrame("Caesium137", "Cs137").dustSmall(ModItems.powder_cs137_tiny).dust(ModItems.powder_cs137); + new DictFrame("Astatine209", "At209").dust(ModItems.powder_at209); - OreDictionary.registerOre("gemCoal", Items.coal); - OreDictionary.registerOre("gemLignite", ModItems.lignite); - OreDictionary.registerOre("dustFluorite", ModItems.fluorite); - OreDictionary.registerOre("gemTantalum", ModItems.gem_tantalium); - - OreDictionary.registerOre("plateTitanium", ModItems.plate_titanium); - OreDictionary.registerOre("plateAluminum", ModItems.plate_aluminium); OreDictionary.registerOre(getReflector(), ModItems.neutron_reflector); - OreDictionary.registerOre("plateSteel", ModItems.plate_steel); - OreDictionary.registerOre("plateLead", ModItems.plate_lead); - OreDictionary.registerOre("plateCopper", ModItems.plate_copper); - OreDictionary.registerOre("plateIron", ModItems.plate_iron); - OreDictionary.registerOre("plateGold", ModItems.plate_gold); - OreDictionary.registerOre("plateAdvanced", ModItems.plate_advanced_alloy); - OreDictionary.registerOre("plateAdvancedAlloy", ModItems.plate_advanced_alloy); - OreDictionary.registerOre("plateSchrabidium", ModItems.plate_schrabidium); - OreDictionary.registerOre("plateCMBSteel", ModItems.plate_combine_steel); - OreDictionary.registerOre("plateSaturnite", ModItems.plate_saturnite); - - OreDictionary.registerOre("oreUranium", ModBlocks.ore_uranium); - OreDictionary.registerOre("oreUranium", ModBlocks.ore_uranium_scorched); - OreDictionary.registerOre("oreThorium", ModBlocks.ore_thorium); - OreDictionary.registerOre("oreTitanium", ModBlocks.ore_titanium); - OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_schrabidium); - OreDictionary.registerOre("oreSulfur", ModBlocks.ore_sulfur); - OreDictionary.registerOre("oreNiter", ModBlocks.ore_niter); - OreDictionary.registerOre("oreSaltpeter", ModBlocks.ore_niter); - OreDictionary.registerOre("oreCopper", ModBlocks.ore_copper); - OreDictionary.registerOre("oreTungsten", ModBlocks.ore_tungsten); - OreDictionary.registerOre("oreAluminum", ModBlocks.ore_aluminium); - OreDictionary.registerOre("oreFluorite", ModBlocks.ore_fluorite); - OreDictionary.registerOre("oreLead", ModBlocks.ore_lead); - OreDictionary.registerOre("oreBeryllium", ModBlocks.ore_beryllium); - OreDictionary.registerOre("oreLignite", ModBlocks.ore_lignite); - OreDictionary.registerOre("oreAustralium", ModBlocks.ore_australium); - OreDictionary.registerOre("oreRareEarth", ModBlocks.ore_rare); - OreDictionary.registerOre("oreZirconium", ModBlocks.ore_depth_zirconium); - OreDictionary.registerOre("oreColtan", ModBlocks.ore_coltan); - OreDictionary.registerOre("oreCobalt", ModBlocks.ore_cobalt); - - OreDictionary.registerOre("oreIron", ModBlocks.ore_gneiss_iron); - OreDictionary.registerOre("oreGold", ModBlocks.ore_gneiss_gold); - OreDictionary.registerOre("oreUranium", ModBlocks.ore_gneiss_uranium); - OreDictionary.registerOre("oreUranium", ModBlocks.ore_gneiss_uranium_scorched); - OreDictionary.registerOre("oreCopper", ModBlocks.ore_gneiss_copper); - OreDictionary.registerOre("oreAsbestos", ModBlocks.ore_gneiss_asbestos); - OreDictionary.registerOre("oreLithium", ModBlocks.ore_gneiss_lithium); - OreDictionary.registerOre("oreRareEarth", ModBlocks.ore_gneiss_rare); - OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_gneiss_schrabidium); - - OreDictionary.registerOre("oreUranium", ModBlocks.ore_nether_uranium); - OreDictionary.registerOre("oreUranium", ModBlocks.ore_nether_uranium_scorched); - OreDictionary.registerOre("orePlutonium", ModBlocks.ore_nether_plutonium); - OreDictionary.registerOre("oreTungsten", ModBlocks.ore_nether_tungsten); - OreDictionary.registerOre("oreSulfur", ModBlocks.ore_nether_sulfur); - OreDictionary.registerOre("oreCobalt", ModBlocks.ore_nether_cobalt); - OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_nether_schrabidium); - - OreDictionary.registerOre("oreUranium", ModBlocks.ore_meteor_uranium); - OreDictionary.registerOre("oreThorium", ModBlocks.ore_meteor_thorium); - OreDictionary.registerOre("oreTitanium", ModBlocks.ore_meteor_titanium); - OreDictionary.registerOre("oreSulfur", ModBlocks.ore_meteor_sulfur); - OreDictionary.registerOre("oreCopper", ModBlocks.ore_meteor_copper); - OreDictionary.registerOre("oreTungsten", ModBlocks.ore_meteor_tungsten); - OreDictionary.registerOre("oreAluminum", ModBlocks.ore_meteor_aluminium); - OreDictionary.registerOre("oreLead", ModBlocks.ore_meteor_lead); - OreDictionary.registerOre("oreLithium", ModBlocks.ore_meteor_lithium); - OreDictionary.registerOre("oreStarmetal", ModBlocks.ore_meteor_starmetal); - OreDictionary.registerOre("oreAsbestos", ModBlocks.ore_asbestos); - OreDictionary.registerOre("oreCinnabar", ModBlocks.ore_cinnebar); - - OreDictionary.registerOre("oreSulfur", ModBlocks.basalt_sulfur); - OreDictionary.registerOre("oreAsbestos", ModBlocks.basalt_asbestos); - - OreDictionary.registerOre("blockThorium", ModBlocks.block_thorium); - OreDictionary.registerOre("blockUranium", ModBlocks.block_uranium); - OreDictionary.registerOre("blockTitanium", ModBlocks.block_titanium); - OreDictionary.registerOre("blockSulfur", ModBlocks.block_sulfur); - OreDictionary.registerOre("blockNiter", ModBlocks.block_niter); - OreDictionary.registerOre("blockSaltpeter", ModBlocks.block_niter); - OreDictionary.registerOre("blockCopper", ModBlocks.block_copper); - OreDictionary.registerOre("blockMingrade", ModBlocks.block_red_copper); - OreDictionary.registerOre("blockAdvanced", ModBlocks.block_advanced_alloy); - OreDictionary.registerOre("blockAdvancedAlloy", ModBlocks.block_advanced_alloy); - OreDictionary.registerOre("blockTungsten", ModBlocks.block_tungsten); - OreDictionary.registerOre("blockAluminum", ModBlocks.block_aluminium); - OreDictionary.registerOre("blockFluorite", ModBlocks.block_fluorite); - OreDictionary.registerOre("blockSteel", ModBlocks.block_steel); - OreDictionary.registerOre("blockLead", ModBlocks.block_lead); - OreDictionary.registerOre("blockBeryllium", ModBlocks.block_beryllium); - OreDictionary.registerOre("blockSchrabidium", ModBlocks.block_schrabidium); - OreDictionary.registerOre("blockCMBSteel", ModBlocks.block_combine_steel); - OreDictionary.registerOre("blockMagnetizedTungsten", ModBlocks.block_magnetized_tungsten); - OreDictionary.registerOre("blockAustralium", ModBlocks.block_australium); - OreDictionary.registerOre("blockWeidanium", ModBlocks.block_weidanium); - OreDictionary.registerOre("blockReiium", ModBlocks.block_reiium); - OreDictionary.registerOre("blockUnobtainium", ModBlocks.block_unobtainium); - OreDictionary.registerOre("blockDaffergon", ModBlocks.block_daffergon); - OreDictionary.registerOre("blockVerticium", ModBlocks.block_verticium); - OreDictionary.registerOre("blockDesh", ModBlocks.block_desh); - OreDictionary.registerOre("blockAsbestos", ModBlocks.block_asbestos); - OreDictionary.registerOre("blockCobalt", ModBlocks.block_cobalt); - OreDictionary.registerOre("blockZirconium", ModBlocks.block_zirconium); - OreDictionary.registerOre("blockBoron", ModBlocks.block_boron); - OreDictionary.registerOre("blockColtan", ModBlocks.block_coltan); - OreDictionary.registerOre("blockLithium", ModBlocks.block_lithium); - - OreDictionary.registerOre("blockThorium", ModBlocks.block_thorium); - OreDictionary.registerOre("blockThorium232", ModBlocks.block_thorium); - OreDictionary.registerOre("blockUranium233", ModBlocks.block_u233); - OreDictionary.registerOre("blockUranium235", ModBlocks.block_u235); - OreDictionary.registerOre("blockUranium238", ModBlocks.block_u238); - OreDictionary.registerOre("blockNeptunium237", ModBlocks.block_neptunium); - OreDictionary.registerOre("blockPolonium", ModBlocks.block_polonium); - OreDictionary.registerOre("blockPlutonium", ModBlocks.block_plutonium); - OreDictionary.registerOre("blockPlutonium238", ModBlocks.block_pu238); - OreDictionary.registerOre("blockPlutonium239", ModBlocks.block_pu239); - OreDictionary.registerOre("blockPlutonium240", ModBlocks.block_pu240); OreDictionary.registerOre("logWood", ModBlocks.pink_log); OreDictionary.registerOre("logWoodPink", ModBlocks.pink_log); @@ -326,4 +129,56 @@ public class OreDictManager { public static String getReflector() { return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever } + + public static class DictFrame { + String[] mats; + + public DictFrame(String... mats) { + this.mats = mats; + } + + public DictFrame nugget(Item... nugget) { + return makeItem("nugget", nugget).makeItem("tiny", nugget); + } + public DictFrame ingot(Item... ingot) { + return makeItem("ingot", ingot); + } + public DictFrame dustSmall(Item... dustSmall) { + return makeItem("dustSmall", dustSmall); + } + public DictFrame dust(Item... dust) { + return makeItem("dust", dust); + } + public DictFrame gem(Item... gem) { + return makeItem("gem", gem); + } + public DictFrame crystal(Item... crystal) { + return makeItem("crystal", crystal); + } + public DictFrame plate(Item... plate) { + return makeItem("plate", plate); + } + public DictFrame billet(Item... billet) { + return makeItem("billet", billet); + } + + public DictFrame block(Block... block) { + return makeBlocks("block", block); + } + public DictFrame ore(Block... ore) { + return makeBlocks("ore", ore); + } + public DictFrame oreNether(Block... oreNether) { + return makeBlocks("oreNether", oreNether); + } + + public DictFrame makeItem(String tag, Item... items) { + for(String mat : mats) for(Item i : items) OreDictionary.registerOre(tag + mat, i); + return this; + } + public DictFrame makeBlocks(String tag, Block... blocks) { + for(String mat : mats) for(Block b : blocks) OreDictionary.registerOre(tag + mat, b); + return this; + } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java index bad47089e..15a1b8fb0 100644 --- a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java +++ b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java @@ -2,6 +2,8 @@ package com.hbm.items.tool; import java.util.Random; +import com.hbm.main.MainRegistry; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -13,6 +15,7 @@ import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class ItemColtanCompass extends Item { @@ -28,6 +31,9 @@ public class ItemColtanCompass extends Item { lastX = stack.stackTagCompound.getInteger("colX"); lastZ = stack.stackTagCompound.getInteger("colZ"); lease = System.currentTimeMillis() + 1000; + + Vec3 vec = Vec3.createVectorHelper(entity.posX - lastX, 0, entity.posZ - lastZ); + MainRegistry.proxy.displayTooltip(((int) vec.lengthVector()) + "m"); } if(ItemColtanCompass.this.lease < System.currentTimeMillis()) { diff --git a/src/main/java/com/hbm/items/tool/ItemMeteorRemote.java b/src/main/java/com/hbm/items/tool/ItemMeteorRemote.java index 8faf544eb..d162d509e 100644 --- a/src/main/java/com/hbm/items/tool/ItemMeteorRemote.java +++ b/src/main/java/com/hbm/items/tool/ItemMeteorRemote.java @@ -21,37 +21,31 @@ public class ItemMeteorRemote extends Item { } @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) - { + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { list.add("Right click to summon a meteorite!"); } @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - + stack.damageItem(1, player); - if(!world.isRemote) - { + if(!world.isRemote) { EntityMeteor meteor = new EntityMeteor(world); - meteor.posX = player.posX + world.rand.nextInt(201) - 100; - meteor.posY = 384; - meteor.posZ = player.posZ + world.rand.nextInt(201) - 100; + meteor.setPositionAndRotation(player.posX + world.rand.nextInt(201) - 100, 384, player.posZ + world.rand.nextInt(201) - 100, 0, 0); meteor.motionX = world.rand.nextDouble() - 0.5; meteor.motionY = -2.5; meteor.motionZ = world.rand.nextDouble() - 0.5; world.spawnEntityInWorld(meteor); } - if(world.isRemote) - { + + if(world.isRemote) { player.addChatMessage(new ChatComponentText("Watch your head!")); } - world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); - + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); player.swingItem(); return stack; - } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b4b44f0dc..e928a516a 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -29,7 +29,16 @@ public class ItemWandD extends Item { //int y = world.getHeightValue(x, z); int y = pos.blockY; - CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); + //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); + + for(int i = x - 10; i <= x + 10; i++) { + for(int j = y - 10; j <= y + 10; j++) { + for(int k = z - 10; k <= z + 10; k++) { + + world.getBlock(i, j, k).updateTick(world, i, j, k, world.rand); + } + } + } /*EntityBlockSpider spider = new EntityBlockSpider(world); spider.setPosition(x + 0.5, y, z + 0.5); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 87470a039..dd1af087b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -119,29 +119,33 @@ public class HbmWorldGen implements IWorldGenerator { int colZ = (int) (colRand.nextGaussian() * 1500); int colRange = 750; - if((GeneralConfig.enable528BedrockSpawn || GeneralConfig.enable528BedrockDeposit) && rand.nextInt(GeneralConfig.bedrockRate) == 0) { + if((GeneralConfig.enable528BedrockSpawn || GeneralConfig.enable528BedrockDeposit) && rand.nextInt(GeneralConfig.bedrockRate) != 0) { int x = i + rand.nextInt(16); int z = j + rand.nextInt(16); - int y = rand.nextInt(4) + 1; if(GeneralConfig.enable528BedrockSpawn || (GeneralConfig.enable528BedrockDeposit && x <= colX + colRange && x >= colX - colRange && z <= colZ + colRange && z >= colZ - colRange)) { - if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.stone)) { - world.setBlock(x, y, z, ModBlocks.ore_bedrock_coltan); + + for(int y = 6; y >= 0; y--) { + if(world.getBlock(x, y, z).isReplaceableOreGen(world, x, y, z, Blocks.bedrock)) { + world.setBlock(x, y, z, ModBlocks.ore_bedrock_coltan); + } } } } - for (int k = 0; k < 2; k++) { - - for(int r = 1; r <= 5; r++) { - int randPosX = i + rand.nextInt(16); - int randPosY = rand.nextInt(25) + 15; - int randPosZ = j + rand.nextInt(16); + if(GeneralConfig.enable528ColtanDeposit) { + for (int k = 0; k < 2; k++) { - int range = colRange / r; - - if(randPosX <= colX + range && randPosX >= colX - range && randPosZ <= colZ + range && randPosZ >= colZ - range) { - (new WorldGenMinable(ModBlocks.ore_coltan, 4)).generate(world, rand, randPosX, randPosY, randPosZ); + for(int r = 1; r <= 5; r++) { + int randPosX = i + rand.nextInt(16); + int randPosY = rand.nextInt(25) + 15; + int randPosZ = j + rand.nextInt(16); + + int range = colRange / r; + + if(randPosX <= colX + range && randPosX >= colX - range && randPosZ <= colZ + range && randPosZ >= colZ - range) { + (new WorldGenMinable(ModBlocks.ore_coltan, 4)).generate(world, rand, randPosX, randPosY, randPosZ); + } } } } diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 663eb5b20..ae8c01371 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -533,9 +533,7 @@ public class ModEventHandler { if(p != null && p.dimension == 0) { EntityMeteor meteor = new EntityMeteor(event.world); - meteor.posX = p.posX + event.world.rand.nextInt(201) - 100; - meteor.posY = 384; - meteor.posZ = p.posZ + event.world.rand.nextInt(201) - 100; + meteor.setPositionAndRotation(p.posX + event.world.rand.nextInt(201) - 100, 384, p.posZ + event.world.rand.nextInt(201) - 100, 0, 0); meteor.motionX = event.world.rand.nextDouble() - 0.5; meteor.motionY = -2.5; meteor.motionZ = event.world.rand.nextDouble() - 0.5; diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 544e95f6a..b5ccec72a 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -98,6 +98,7 @@ import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; import net.minecraftforge.event.entity.player.ItemTooltipEvent; +import net.minecraftforge.oredict.OreDictionary; public class ModEventHandlerClient { @@ -532,6 +533,19 @@ public class ModEventHandlerClient { /// HAZARDS /// HazardSystem.addFullTooltip(stack, event.entityPlayer, list); + + if(event.showAdvancedItemTooltips) { + int ids[] = OreDictionary.getOreIDs(stack); + + if(ids.length > 0) { + list.add(EnumChatFormatting.BLUE + "Ore Dict:"); + for(int i : ids) { + list.add(EnumChatFormatting.AQUA + " -" + OreDictionary.getOreName(i)); + } + } else { + list.add(EnumChatFormatting.RED + "No Ore Dict data!"); + } + } } private ResourceLocation ashes = new ResourceLocation(RefStrings.MODID + ":textures/misc/overlay_ash.png"); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index b10a4204e..06d6e194e 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1072,6 +1072,30 @@ public class ItemRenderLibrary { GL11.glScaled(1, 1, 1); bindTexture(ResourceManager.fraction_spacer_tex); ResourceManager.fraction_spacer.renderAll(); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_tower_small), new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4, 0); + GL11.glScaled(3, 3, 3); + } + public void renderCommon() { + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.tower_small_tex); ResourceManager.tower_small.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_tower_large), new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(4 * 0.95, 4 * 0.95, 4 * 0.95); + } + public void renderCommon() { + GL11.glScaled(0.25, 0.25, 0.25); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.tower_large_tex); ResourceManager.tower_large.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java index 0c8fcf1be..73172ace7 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKOutgasser.java @@ -16,6 +16,8 @@ import com.hbm.items.machine.ItemFluidIcon; import com.hbm.lib.Library; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKConsole.ColumnType; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -80,6 +82,9 @@ public class TileEntityRBMKOutgasser extends TileEntityRBMKSlottedBase implement recipes.put("ingotGold", new ItemStack(ModItems.ingot_au198)); recipes.put("nuggetGold", new ItemStack(ModItems.nugget_au198)); recipes.put("dustGold", new ItemStack(ModItems.powder_au198)); + recipes.put(new ComparableStack(Blocks.brown_mushroom), new ItemStack(ModBlocks.mush)); + recipes.put(new ComparableStack(Blocks.red_mushroom), new ItemStack(ModBlocks.mush)); + recipes.put(new ComparableStack(Items.mushroom_stew), new ItemStack(ModItems.glowing_stew)); } private boolean canProcess() { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 1ebdc20af..0777b1c08 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -864,6 +864,7 @@ item.canister_canola.name=Schmiermittelkanister item.canister_empty.name=Leerer Kanister item.canister_fuel.name=Dieselkanister item.canister_gasoline.name=Bleibenzinkanister +item.canister_gasoline.desc=blei ist freund$lasse deinen freund in deinen blutstrom$*lädt waffe* jetzt sofort item.canister_heatingoil.name=Heizölkanister item.canister_heavyoil.name=Schwerölkanister item.canister_kerosene.name=Kerosinkanister @@ -3058,6 +3059,7 @@ tile.machine_storage_drum.name=Atommüll-Lagertrommel tile.machine_telelinker.name=Geschütz-Telemetrie-Manager tile.machine_teleporter.name=Teleporter tile.machine_tower_large.name=Kühlturm +tile.machine_tower_small.name=Hilfskühlturm tile.machine_transformer.name=10k-20Hz-Transformator tile.machine_transformer_20.name=10k-1Hz-Transformator tile.machine_transformer_dnt.name=DNT-20Hz-Transformator diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f2ef640c3..521d4b111 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -932,6 +932,7 @@ item.canister_canola.name=Engine Lubricant item.canister_empty.name=Empty Canister item.canister_fuel.name=Diesel Canister item.canister_gasoline.name=Leaded Gasoline Canister +item.canister_gasoline.desc=lead is friend$let friend into your blood stream$*cocks gun* do it now. item.canister_heatingoil.name=Heating Oil Canister item.canister_heavyoil.name=Heavy Oil Canister item.canister_kerosene.name=Kerosene Canister @@ -3141,6 +3142,7 @@ tile.machine_storage_drum.name=Nuclear Waste Disposal Drum tile.machine_telelinker.name=Turret Telemetry Linker tile.machine_teleporter.name=Teleporter tile.machine_tower_large.name=Cooling Tower +tile.machine_tower_small.name=Auxiliary Cooling Tower tile.machine_transformer.name=10k-20Hz Transformer tile.machine_transformer_20.name=10k-1Hz Transformer tile.machine_transformer_dnt.name=DNT-20Hz Transformer diff --git a/src/main/resources/assets/hbm/textures/blocks/block_niobium.png b/src/main/resources/assets/hbm/textures/blocks/block_niobium.png new file mode 100644 index 000000000..49cea2579 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_niobium.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png new file mode 100644 index 000000000..96f6f25ac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png new file mode 100644 index 000000000..279ab42d3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_circuit_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png b/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png new file mode 100644 index 000000000..863212255 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_emergency.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_hole.png b/src/main/resources/assets/hbm/textures/blocks/siege_hole.png new file mode 100644 index 000000000..143933a9d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_hole.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png new file mode 100644 index 000000000..37846308d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_internal_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png new file mode 100644 index 000000000..895b906d9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_internal_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png new file mode 100644 index 000000000..efaf1e1e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_shield_0.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png new file mode 100644 index 000000000..1a35293f2 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_shield_1.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png new file mode 100644 index 000000000..ca6a2d46d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_shield_2.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png new file mode 100644 index 000000000..02d3213f8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_shield_3.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png b/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png new file mode 100644 index 000000000..2e32a639d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/siege_shield_overlay_66_ue.png differ diff --git a/src/main/resources/assets/hbm/textures/items/cigarette.png b/src/main/resources/assets/hbm/textures/items/cigarette.png new file mode 100644 index 000000000..24aa8d0e8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/cigarette.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png b/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png new file mode 100644 index 000000000..42eeb6af4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/fracking_tower.png differ