diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 82e2209fb..25e430822 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -39,6 +39,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I super(Material.rock); this.setBlockTextureName("bedrock"); this.setBlockUnbreakable(); + this.setResistance(1_000_000); } @Override @@ -140,6 +141,8 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I text.add(ore.resource.getDisplayName()); } + text.add("Tier: " + ore.tier); + if(ore.acidRequirement != null) { text.add("Requires: " + ore.acidRequirement.fill + "mB " + I18nUtil.resolveKey(ore.acidRequirement.type.getUnlocalizedName())); } @@ -151,6 +154,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I public ItemStack resource; public FluidStack acidRequirement; + public int tier; public int color; public int shape; @@ -179,6 +183,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I this.acidRequirement = new FluidStack(type, nbt.getInteger("amount")); } + this.tier = nbt.getInteger("tier"); this.color = nbt.getInteger("color"); this.shape = nbt.getInteger("shape"); } @@ -198,6 +203,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I nbt.setInteger("amount", this.acidRequirement.fill); } + nbt.setInteger("tier", this.tier); nbt.setInteger("color", this.color); nbt.setInteger("shape", this.shape); } diff --git a/src/main/java/com/hbm/blocks/generic/BlockLayering.java b/src/main/java/com/hbm/blocks/generic/BlockLayering.java index e648823ee..7b45bbe3a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockLayering.java +++ b/src/main/java/com/hbm/blocks/generic/BlockLayering.java @@ -13,7 +13,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; diff --git a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java index 84246b1fa..0d27866a6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineExcavator.java +++ b/src/main/java/com/hbm/blocks/machine/MachineExcavator.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine; import com.hbm.blocks.BlockDummyable; import com.hbm.handler.MultiblockHandlerXR; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineExcavator; import net.minecraft.block.material.Material; @@ -18,8 +19,9 @@ public class MachineExcavator extends BlockDummyable { @Override public TileEntity createNewTileEntity(World world, int meta) { - + if(meta >= 12) return new TileEntityMachineExcavator(); + if(meta >= 6) return new TileEntityProxyCombo().power().fluid(); return null; } @@ -62,5 +64,11 @@ public class MachineExcavator extends BlockDummyable { MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {-1, 3, 3, -2, 3, -2}, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {-1, 3, 3, -2, -2, 3}, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {-1, 3, -2, 3, 3, 3}, this, dir); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + this.makeExtra(world, x + dir.offsetX * 3 + rot.offsetX, y + 1, z + dir.offsetZ * 3 + rot.offsetZ); + this.makeExtra(world, x + dir.offsetX * 3 - rot.offsetX, y + 1, z + dir.offsetZ * 3 - rot.offsetZ); + this.makeExtra(world, x + rot.offsetX * 3, y + 1, z + rot.offsetZ * 3); + this.makeExtra(world, x - rot.offsetX * 3, y + 1, z - rot.offsetZ * 3); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index b92341628..60d086a66 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -18,6 +18,8 @@ import com.hbm.util.I18nUtil; import api.hbm.block.IToolable; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -143,10 +145,11 @@ public class MachineFluidTank extends BlockDummyable implements IPersistentInfoP public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { if(tool != ToolType.TORCH) return false; - return IRepairable.tryRepairMultiblock(world, x, y, z, this, Minecraft.getMinecraft().thePlayer); + return IRepairable.tryRepairMultiblock(world, x, y, z, this, player); } @Override + @SideOnly(Side.CLIENT) public void printHook(Pre event, World world, int x, int y, int z) { List materials = IRepairable.getRepairMaterials(world, x, y, z, this, Minecraft.getMinecraft().thePlayer); diff --git a/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java b/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java index 39c65cc59..275e0a36c 100644 --- a/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java +++ b/src/main/java/com/hbm/blocks/machine/ReactorZirnox.java @@ -63,6 +63,7 @@ public class ReactorZirnox extends BlockDummyable { return 2; } + @Override protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index 91ba31a22..48b2ae6c9 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -33,6 +33,9 @@ public class WorldConfig { public static int bedrockOilSpawn = 200; public static int meteoriteSpawn = 500; + public static int bedrockIronSpawn = 200; + public static int bedrockCopperSpawn = 200; + public static int ironClusterSpawn = 4; public static int titaniumClusterSpawn = 2; public static int aluminiumClusterSpawn = 3; @@ -124,6 +127,9 @@ public class WorldConfig { bedrockOilSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.22_bedrockOilSpawnRate", "Spawns a bedrock oil node every nTH chunk", 200); meteoriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.23_meteoriteSpawnRate", "Spawns a fallen meteorite every nTH chunk", 200); + bedrockIronSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B00_bedrockIronSpawn", "Spawns a bedrock iron deposit every nTH chunk", 200); + bedrockCopperSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B01_bedrockCopperSpawn", "Spawns a bedrock copper deposit every nTH chunk", 200); + ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); aluminiumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C02_aluminiumClusterSpawn", "Amount of aluminium cluster veins per chunk", 3); diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index de26d22ce..079e2ab2c 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -171,7 +171,7 @@ public class EntityFalloutRain extends Entity { } float hardness = b.getBlockHardness(worldObj, x, y, z); - if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0) { + if(dist < 65 && hardness <= Blocks.stonebrick.getExplosionResistance(null) && hardness >= 0/* && !b.hasTileEntity(worldObj.getBlockMetadata(x, y, z))*/) { Block bl = worldObj.getBlock(x, y - 1, z); if(bl == Blocks.air) { diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e5c5185f0..df00c0ced 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -19,9 +19,11 @@ import com.hbm.hazard.HazardEntry; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; import com.hbm.inventory.material.MaterialShapes; +import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -447,6 +449,10 @@ public class OreDictManager { OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_bismuth); OreDictionary.registerOre(KEY_CIRCUIT_BISMUTH, circuit_arsenic); + + for(EnumBedrockOre ore : EnumBedrockOre.values()) { + OreDictionary.registerOre("ore" + ore.oreName, new ItemStack(ModItems.ore_enriched, 1, ore.ordinal())); + } OreDictionary.registerOre("itemRubber", ingot_rubber); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java index 61244f87a..0197e0409 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineExcavator.java @@ -108,5 +108,7 @@ public class GUIMachineExcavator extends GuiInfoContainer { if(drill.canSilkTouch()) drawTexturedModalRect(guiLeft + 107, guiTop + 5, 209, 104, 10, 10); else if(System.currentTimeMillis() % 1000 < 500) drawTexturedModalRect(guiLeft + 107, guiTop + 5, 219, 104, 10, 10); } + + drill.tank.renderTank(guiLeft + 202, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index efa9781f1..653294ec1 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -28,6 +28,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; +import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.main.MainRegistry; @@ -196,8 +197,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 6), },300); makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); - makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 36, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); + makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); + makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(W.ingot(), 4), new ComparableStack(ModItems.wire_aluminium, 4), },100); makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.wire_copper, 16), },150); makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new OreDictStack(DURA.ingot(), 16), new OreDictStack(W.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.circuit_red_copper, 1), },200); @@ -498,6 +499,45 @@ public class AssemblerRecipes { new OreDictStack(NB.ingot(), 16), new ComparableStack(ModItems.bolt_compound, 16) }, 200); + + makeRecipe(new ComparableStack(ModBlocks.machine_excavator, 1), new AStack[] { + new ComparableStack(Blocks.stonebrick, 8), + new OreDictStack(STEEL.ingot(), 16), + new OreDictStack(IRON.ingot(), 16), + new ComparableStack(ModBlocks.steel_scaffold, 16), + new ComparableStack(ModItems.motor, 2), + new ComparableStack(ModItems.tank_steel, 1), + new ComparableStack(ModItems.circuit_red_copper, 1) + }, 300); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()), new AStack[] { + new OreDictStack(STEEL.ingot(), 12), + new OreDictStack(W.ingot(), 4) + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()), + new OreDictStack(DIAMOND.dust(), 16) + }, 100); + + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), new AStack[] { + new OreDictStack(DURA.ingot(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 12), + new OreDictStack(TI.ingot(), 8) + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), + new OreDictStack(DIAMOND.dust(), 24) + }, 100); + + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), new AStack[] { + new OreDictStack(DESH.ingot(), 16), + new OreDictStack(RUBBER.ingot(), 12), + new OreDictStack(NB.ingot(), 4) + }, 200); + makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH_DIAMOND.ordinal()), new AStack[] { + new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), + new OreDictStack(DIAMOND.dust(), 32) + }, 100); + makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 643c8c58d..bdf747ca5 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -18,6 +18,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import net.minecraft.init.Blocks; @@ -298,6 +299,28 @@ public class CentrifugeRecipes extends SerializableRecipe { new ItemStack(Items.dye, 1, 15), //temp new ItemStack(ModItems.dust) }); + for(EnumBedrockOre ore : EnumBedrockOre.values()) { + int i = ore.ordinal(); + + recipes.put(new ComparableStack(ModItems.ore_bedrock, 1, i), new ItemStack[] { + new ItemStack(ModItems.ore_centrifuged, 1, i), + new ItemStack(ModItems.ore_centrifuged, 1, i), + new ItemStack(ModItems.ore_centrifuged, 1, i), + new ItemStack(ModItems.ore_centrifuged, 1, i) }); + + recipes.put(new ComparableStack(ModItems.ore_cleaned, 1, i), new ItemStack[] { + new ItemStack(ModItems.ore_separated, 1, i), + new ItemStack(ModItems.ore_separated, 1, i), + new ItemStack(ModItems.ore_separated, 1, i), + new ItemStack(ModItems.ore_separated, 1, i) }); + + recipes.put(new ComparableStack(ModItems.ore_purified, 1, i), new ItemStack[] { + new ItemStack(ModItems.ore_enriched, 1, i), + new ItemStack(ModItems.ore_enriched, 1, i), + new ItemStack(ModItems.ore_enriched, 1, i), + new ItemStack(ModItems.ore_enriched, 1, i) }); + } + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java index ae462ead1..00d78ba9c 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrystallizerRecipes.java @@ -10,6 +10,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.handler.imc.IMCCrystallizer; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.main.MainRegistry; @@ -85,6 +86,13 @@ public class CrystallizerRecipes { recipes.put(new ComparableStack(ModItems.scrap_plastic, 1, i), new ItemStack(ModItems.circuit_star_piece, 1, i)); } + for(EnumBedrockOre ore : EnumBedrockOre.values()) { + int i = ore.ordinal(); + + recipes.put(new ComparableStack(ModItems.ore_centrifuged, 1, i), new ItemStack(ModItems.ore_cleaned, 1, i)); + recipes.put(new ComparableStack(ModItems.ore_separated, 1, i), new ItemStack(ModItems.ore_purified, 1, i)); + } + List quartz = OreDictionary.getOres("crystalCertusQuartz"); if(quartz != null && !quartz.isEmpty()) { diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index 18169762c..04f8243dd 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -15,6 +15,7 @@ import com.hbm.interfaces.Untested; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import com.hbm.util.Compat; @@ -213,6 +214,15 @@ public class ShredderRecipes extends SerializableRecipe { ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2)); } + for(EnumBedrockOre ore : EnumBedrockOre.values()) { + int i = ore.ordinal(); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_centrifuged, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_cleaned, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_separated, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); + ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_purified, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); + } + for(int i = 0; i < 5; i++) ShredderRecipes.setRecipe(new ItemStack(Items.skull, 1, i), new ItemStack(ModItems.biomass, 4)); /* Crystal processing */ diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index dac46f323..32c22a1bb 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -186,6 +186,13 @@ public class ModItems { public static Item ingot_mercury; //It's to prevent any ambiguity, as it was treated as a full ingot in the past anyway public static Item bottle_mercury; + public static Item ore_bedrock; + public static Item ore_centrifuged; + public static Item ore_cleaned; + public static Item ore_separated; + public static Item ore_purified; + public static Item ore_enriched; + public static Item billet_uranium; public static Item billet_u233; public static Item billet_u235; @@ -2799,6 +2806,13 @@ public class ModItems { ingot_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury"); + ore_bedrock = new ItemBedrockOre().setUnlocalizedName("ore_bedrock").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_bedrock"); + ore_centrifuged = new ItemBedrockOre().setUnlocalizedName("ore_centrifuged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_centrifuged"); + ore_cleaned = new ItemBedrockOre().setUnlocalizedName("ore_cleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_cleaned"); + ore_separated = new ItemBedrockOre().setUnlocalizedName("ore_separated").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_separated"); + ore_purified = new ItemBedrockOre().setUnlocalizedName("ore_purified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_purified"); + ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); + ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -6065,6 +6079,14 @@ public class ModItems { GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); + //Ores + GameRegistry.registerItem(ore_bedrock, ore_bedrock.getUnlocalizedName()); + GameRegistry.registerItem(ore_centrifuged, ore_centrifuged.getUnlocalizedName()); + GameRegistry.registerItem(ore_cleaned, ore_cleaned.getUnlocalizedName()); + GameRegistry.registerItem(ore_separated, ore_separated.getUnlocalizedName()); + GameRegistry.registerItem(ore_purified, ore_purified.getUnlocalizedName()); + GameRegistry.registerItem(ore_enriched, ore_enriched.getUnlocalizedName()); + //Crystals GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); GameRegistry.registerItem(crystal_iron, crystal_iron.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOre.java b/src/main/java/com/hbm/items/special/ItemBedrockOre.java new file mode 100644 index 000000000..cdba5a466 --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemBedrockOre.java @@ -0,0 +1,65 @@ +package com.hbm.items.special; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.lib.RefStrings; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemBedrockOre extends ItemEnumMulti { + + protected IIcon overlayIcon; + + public ItemBedrockOre() { + super(EnumBedrockOre.class, true, false); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() { + return true; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister p_94581_1_) { + super.registerIcons(p_94581_1_); + + this.overlayIcon = p_94581_1_.registerIcon(RefStrings.MODID + ":ore_overlay"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int meta, int pass) { + return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(meta, pass); + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) { + + if(pass == 1) { + EnumBedrockOre ore = EnumUtil.grabEnumSafely(EnumBedrockOre.class, stack.getItemDamage()); + return ore.color; + } + + return 0xffffff; + } + + public static enum EnumBedrockOre { + IRON("Iron", 0xE2C0AA), + COPPER("Copper", 0xFDCA88); + + public String oreName; + public int color; + + private EnumBedrockOre(String name, int color) { + this.oreName = name; + this.color = color; + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index eb128f666..010561a30 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -8,6 +8,8 @@ import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; import com.hbm.entity.logic.EntityTomBlast; import com.hbm.entity.mob.siege.EntitySiegeTunneler; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBookLore; import com.hbm.items.special.ItemBookLore.BookLoreType; @@ -98,6 +100,7 @@ public class ItemWandD extends Item { ore.resource = new ItemStack(ModBlocks.stone_resource, 1, 2); ore.color = 0xCF6722; ore.shape = type; + ore.acidRequirement = new FluidStack(Fluids.SULFURIC_ACID, 1000); world.markBlockForUpdate(ix, 0, iz); world.markTileEntityChunkModified(ix, 0, iz, ore); } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 357f120e6..0d39cecea 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; import com.hbm.config.GeneralConfig; import com.hbm.config.WorldConfig; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.machine.storage.TileEntitySafe; @@ -152,6 +153,9 @@ public class HbmWorldGen implements IWorldGenerator { DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.hematiteSpawn, 10, 4, 80, ModBlocks.stone_resource, EnumStoneType.HEMATITE.ordinal()); DungeonToolbox.generateOre(world, rand, i, j, WorldConfig.malachiteSpawn, 10, 4, 40, ModBlocks.stone_resource, EnumStoneType.MALACHITE.ordinal()); + + if(WorldConfig.bedrockIronSpawn > 0 && rand.nextInt(WorldConfig.bedrockIronSpawn) == 0) DungeonToolbox.generateBedrockOre(world, rand, i, j, EnumBedrockOre.IRON); + if(WorldConfig.bedrockCopperSpawn > 0 && rand.nextInt(WorldConfig.bedrockCopperSpawn) == 0) DungeonToolbox.generateBedrockOre(world, rand, i, j, EnumBedrockOre.COPPER); for(int k = 0; k < WorldConfig.randomSpawn; k++) { BlockMotherOfAllOres.shuffleOverride(rand); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index dade4e19c..95c796e06 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4445)"; + public static final String VERSION = "1.0.27 BETA (4473)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 40b557300..5e1b46faa 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -462,6 +462,12 @@ public class CraftingManager { addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.chain), 8), new Object[] { "S", "S", "S", 'S', ModBlocks.steel_beam }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate), 4), new Object[] { "SS", "SS", 'S', ModBlocks.steel_beam }); + + addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 0), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeGray" }); + addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 1), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeRed" }); + addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 2), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeWhite" }); + addRecipeAuto(new ItemStack(ModBlocks.steel_scaffold, 8, 3), new Object[] { "SSS", "SDS", "SSS", 'S', ModBlocks.steel_scaffold, 'D', "dyeYellow" }); + reg2(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index ec55f818e..c870d46fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -6,7 +6,9 @@ import java.util.HashSet; import java.util.List; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.network.CraneInserter; import com.hbm.entity.item.EntityMovingItem; import com.hbm.interfaces.IControlReceiver; @@ -23,9 +25,11 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Compat; import com.hbm.util.EnumUtil; import com.hbm.util.ItemStackUtil; import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.conveyor.IConveyorBelt; import api.hbm.energy.IEnergyUser; @@ -64,6 +68,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements protected int ticksWorked = 0; protected int targetDepth = 0; //0 is the first block below null position + protected boolean bedrockDrilling = false; public float drillRotation = 0F; public float prevDrillRotation = 0F; @@ -102,8 +107,15 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(!worldObj.isRemote) { + this.tank.setType(1, slots); + if(worldObj.getTotalWorldTime() % 20 == 0) { tryEjectBuffer(); + + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } } if(chuteTimer > 0) chuteTimer--; @@ -121,10 +133,12 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements this.speed = type.speed; this.speed *= (1 + speedLevel / 2D); - if(targetDepth < this.yCoord - 4 && tryDrill(1 + radiusLevel * 2)) { + int maxDepth = this.yCoord - 4; + + if((bedrockDrilling || targetDepth <= maxDepth) && tryDrill(1 + radiusLevel * 2)) { targetDepth++; - if(targetDepth >= this.yCoord - 4) { + if(targetDepth > maxDepth) { this.enableDrill = false; } } @@ -142,6 +156,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements data.setInteger("t", targetDepth); data.setInteger("g", chuteTimer); data.setLong("p", power); + tank.writeToNBT(data, "tank"); this.networkPack(data, 150); } else { @@ -183,6 +198,18 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } } + protected DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + return new DirPos[] { + new DirPos(xCoord + dir.offsetX * 4 + rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 4 + rot.offsetZ, dir), + new DirPos(xCoord + dir.offsetX * 4 - rot.offsetX, yCoord + 1, zCoord + dir.offsetZ * 4 - rot.offsetZ, dir), + new DirPos(xCoord + rot.offsetX * 4, yCoord + 1, zCoord + rot.offsetZ * 4, rot), + new DirPos(xCoord - rot.offsetX * 4, yCoord + 1, zCoord - rot.offsetZ * 4, rot.getOpposite()) + }; + } + public void networkUnpack(NBTTagCompound nbt) { this.enableDrill = nbt.getBoolean("d"); this.enableCrusher = nbt.getBoolean("c"); @@ -193,6 +220,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements this.targetDepth = nbt.getInteger("t"); this.chuteTimer = nbt.getInteger("g"); this.power = nbt.getLong("p"); + this.tank.readFromNBT(nbt, "tank"); } protected int getY() { @@ -202,8 +230,8 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements /** Works outwards and tries to break a ring, returns true if all rings are broken (or ignorable) and the drill should extend. */ protected boolean tryDrill(int radius) { int y = getY(); - - if(targetDepth == 0) { + + if(targetDepth == 0 || y == 0) { radius = 1; } @@ -212,6 +240,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements boolean ignoreAll = true; float combinedHardness = 0F; BlockPos bedrockOre = null; + bedrockDrilling = false; for(int x = xCoord - ring; x <= xCoord + ring; x++) { for(int z = zCoord - ring; z <= zCoord + ring; z++) { @@ -221,16 +250,19 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements Block b = worldObj.getBlock(x, y, z); - if(shouldIgnoreBlock(b, x, y ,z)) continue; - - ignoreAll = false; - if(b == ModBlocks.ore_bedrock) { combinedHardness = 60 * 20; bedrockOre = new BlockPos(x, y, z); + bedrockDrilling = true; + enableCrusher = false; + ignoreAll = false; break; } + if(shouldIgnoreBlock(b, x, y ,z)) continue; + + ignoreAll = false; + combinedHardness += b.getBlockHardness(worldObj, x, y, z); } } @@ -243,12 +275,12 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements if(ticksWorked >= ticksToWork) { - if(bedrockOre != null) { + if(bedrockOre == null) { breakBlocks(ring); buildWall(ring + 1, ring == radius && this.enableWalling); tryCollect(radius); } else { - //collectBedrock(bedrockOre); + collectBedrock(bedrockOre); } ticksWorked = 0; } @@ -262,6 +294,76 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements return true; } + protected void collectBedrock(BlockPos pos) { + TileEntity oreTile = Compat.getTileStandard(worldObj, pos.getX(), pos.getY(), pos.getZ()); + + if(oreTile instanceof TileEntityBedrockOre) { + TileEntityBedrockOre ore = (TileEntityBedrockOre) oreTile; + + if(ore.resource == null) return; + if(ore.tier > this.getInstalledDrill().tier) return; + if(ore.acidRequirement != null) { + + if(ore.acidRequirement.type != tank.getTankType() || ore.acidRequirement.fill > tank.getFill()) return; + + tank.setFill(tank.getFill() - ore.acidRequirement.fill); + } + + ItemStack stack = ore.resource.copy(); + List stacks = new ArrayList(); + stacks.add(stack); + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + + int x = xCoord + dir.offsetX * 4; + int y = yCoord - 3; + int z = zCoord + dir.offsetZ * 4; + + /* try to insert into a valid container */ + TileEntity tile = worldObj.getTileEntity(x, y, z); + if(tile instanceof IInventory) { + supplyContainer((IInventory) tile, stacks, dir.getOpposite()); + } + + if(stack.stackSize <= 0) return; + + /* try to place on conveyor belt */ + Block b = worldObj.getBlock(x, y, z); + if(b instanceof IConveyorBelt) { + supplyConveyor((IConveyorBelt) b, stacks, x, y, z); + } + + if(stack.stackSize <= 0) return; + + for(int i = 5; i < 14; i++) { + + if(slots[i] != null && slots[i].stackSize < slots[i].getMaxStackSize() && stack.isItemEqual(slots[i]) && ItemStack.areItemStackTagsEqual(stack, slots[i])) { + int toAdd = Math.min(slots[i].getMaxStackSize() - slots[i].stackSize, stack.stackSize); + slots[i].stackSize += toAdd; + stack.stackSize -= toAdd; + + chuteTimer = 40; + + if(stack.stackSize <= 0) { + return; + } + } + } + + /* add leftovers to empty slots */ + for(int i = 5; i < 14; i++) { + + if(slots[i] == null) { + + chuteTimer = 40; + + slots[i] = stack.copy(); + return; + } + } + } + } + /** breaks and drops all blocks in the specified ring */ protected void breakBlocks(int ring) { int y = getY(); @@ -477,7 +579,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements List stacks = new ArrayList(); items.forEach(i -> stacks.add(i.getEntityItem())); - /* try to insert into a valid coontainer */ + /* try to insert into a valid container */ TileEntity tile = worldObj.getTileEntity(x, y, z); if(tile instanceof IInventory) { supplyContainer((IInventory) tile, stacks, dir.getOpposite()); @@ -614,6 +716,34 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements EnumDrillType type = getInstalledDrill(); return this.enableSilkTouch && type != null && type.silk; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.enableDrill = nbt.getBoolean("d"); + this.enableCrusher = nbt.getBoolean("c"); + this.enableWalling = nbt.getBoolean("w"); + this.enableVeinMiner = nbt.getBoolean("v"); + this.enableSilkTouch = nbt.getBoolean("s"); + this.targetDepth = nbt.getInteger("t"); + this.power = nbt.getLong("p"); + this.tank.readFromNBT(nbt, "tank"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("d", enableDrill); + nbt.setBoolean("c", enableCrusher); + nbt.setBoolean("w", enableWalling); + nbt.setBoolean("v", enableVeinMiner); + nbt.setBoolean("s", enableSilkTouch); + nbt.setInteger("t", targetDepth); + nbt.setLong("p", power); + tank.writeToNBT(nbt, "tank"); + } @Override public boolean hasPermission(EntityPlayer player) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java index 0dd5ff3b6..59772c142 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKControl.java @@ -97,6 +97,15 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase im @Override public void onMelt(int reduce) { + if(this.isModerated()) { + + int count = 2 + worldObj.rand.nextInt(2); + + for(int i = 0; i < count; i++) { + spawnDebris(DebrisType.GRAPHITE); + } + } + int count = 2 + worldObj.rand.nextInt(2); for(int i = 0; i < count; i++) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 4997dc3a5..23cfc21ad 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -309,6 +309,15 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM spawnDebris(DebrisType.ELEMENT); + if(this.isModerated()) { + + int count = 2 + worldObj.rand.nextInt(2); + + for(int i = 0; i < count; i++) { + spawnDebris(DebrisType.GRAPHITE); + } + } + if(this.getBlockMetadata() == RBMKBase.DIR_NORMAL_LID.ordinal() + RBMKBase.offset) spawnDebris(DebrisType.LID); } diff --git a/src/main/java/com/hbm/world/feature/BedrockOre.java b/src/main/java/com/hbm/world/feature/BedrockOre.java new file mode 100644 index 000000000..362f1cfc2 --- /dev/null +++ b/src/main/java/com/hbm/world/feature/BedrockOre.java @@ -0,0 +1,43 @@ +package com.hbm.world.feature; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; +import com.hbm.inventory.FluidStack; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class BedrockOre { + + public static void generate(World world, int x, int z, ItemStack stack, FluidStack acid, int color) { + + for(int ix = x - 1; ix <= x + 1; ix++) { + for(int iz = z - 1; iz <= z + 1; iz++) { + + if((ix == x && iz == z) || world.rand.nextBoolean()) { + + world.setBlock(ix, 0, iz, ModBlocks.ore_bedrock); + TileEntityBedrockOre ore = (TileEntityBedrockOre) world.getTileEntity(ix, 0, iz); + ore.resource = stack; + ore.color = color; + ore.shape = world.rand.nextInt(10); + ore.acidRequirement = acid; + world.markBlockForUpdate(ix, 0, iz); + world.markTileEntityChunkModified(ix, 0, iz, ore); + } + } + } + + for(int ix = x - 3; ix <= x + 3; ix++) { + for(int iz = z - 3; iz <= z + 3; iz++) { + + for(int iy = 1; iy < 7; iy++) { + if(world.getBlock(ix, iy, iz) == Blocks.bedrock) { + world.setBlock(ix, iy, iz, ModBlocks.stone_depth); + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/world/generator/DungeonToolbox.java b/src/main/java/com/hbm/world/generator/DungeonToolbox.java index f22c451ab..be8766a1c 100644 --- a/src/main/java/com/hbm/world/generator/DungeonToolbox.java +++ b/src/main/java/com/hbm/world/generator/DungeonToolbox.java @@ -4,9 +4,13 @@ import java.util.List; import java.util.Random; import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; +import com.hbm.world.feature.BedrockOre; import net.minecraft.block.Block; import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenFlowers; @@ -88,6 +92,12 @@ public class DungeonToolbox { (new WorldGenMinable(ore, meta, amount, target)).generate(world, rand, x, y, z); } } + + public static void generateBedrockOre(World world, Random rand, int chunkX, int chunkZ, EnumBedrockOre ore) { + int randPosX = chunkX + rand.nextInt(16); + int randPosZ = chunkZ + rand.nextInt(16); + BedrockOre.generate(world, randPosX, randPosZ, new ItemStack(ModItems.ore_bedrock, 1, ore.ordinal()), null, ore.color); + } private static WorldGenFlowers genFlowers = new WorldGenFlowers(null); public static void generateFlowers(World world, Random rand, int chunkX, int chunkZ, Block flower, int meta) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 656aa2291..e6b0b299d 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1522,6 +1522,12 @@ item.dosimeter.name=Dosimeter item.drax.name=Terra-Bohrer item.drax_mk2.name=Gehärteter Terra-Bohrer item.drax_mk3.name=Schrabidischer Terra-Bohrer +item.drillbit_desh.name=Desh-Bohrspitze +item.drillbit_desh_diamond.name=Desh-Bohrspitze (Diamantbeschichtung) +item.drillbit_hss.name=Schnellarbeitsstahl-Bohrspitze +item.drillbit_hss_diamond.name=Schnellarbeitsstahl-Bohrspitze (Diamantbeschichtung) +item.drillbit_steel.name=Stahl-Bohrspitze +item.drillbit_steel_diamond.name=Stahl-Bohrspitze (Diamantbeschichtung) item.drill_titanium.name=Titanbohrer item.ducttape.name=Klebeband item.dust.name=Staub @@ -2324,6 +2330,18 @@ item.oil_tar.name=Ölteer item.oil_tar.crude.name=Erdölteer item.oil_tar.crack.name=Crackölteer item.oil_tar.wood.name=Holzteer +item.ore_bedrock.copper.name=Bedrock-Kupfererz +item.ore_bedrock.iron.name=Bedrock-Eisenerz +item.ore_centrifuged.copper.name=Zentrifugiertes Kupfererz +item.ore_centrifuged.iron.name=Zentrifugiertes Eisenerz +item.ore_cleaned.copper.name=Gereinigtes Kupfererz +item.ore_cleaned.iron.name=Gereinigtes Eisenerz +item.ore_enriched.copper.name=Reiches Kupfererz +item.ore_enriched.iron.name=Reiches Eisenerz +item.ore_purified.copper.name=Pures Kupfererz +item.ore_purified.iron.name=Pures Eisenerz +item.ore_separated.copper.name=Separiertes Kupfererz +item.ore_separated.iron.name=Separiertes Eisenerz item.overfuse.name=Singularitätsschraubenzieher item.oxy_mask.name=Sauerstoffmaske item.paa_boots.name=PaA-"olle Latschen" @@ -3694,6 +3712,7 @@ tile.machine_drill.name=Automatischer Minenbohrer tile.machine_electric_furnace_off.name=Elektrischer Ofen tile.machine_electric_furnace_on.name=Elektrischer Ofen tile.machine_epress.name=Hydraulische Presse +tile.machine_excavator.name=Großer Minenbohrer tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Abfackelturm @@ -3810,6 +3829,7 @@ tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz +tile.ore_bedrock.name=Bedrock-Erz tile.ore_bedrock_coltan.name=Bedrock-Coltanerz tile.ore_bedrock_oil.name=Bedrock-Ölvorkommen tile.ore_beryllium.name=Berylliumerz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 76c43990b..c5fdbb831 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1903,6 +1903,12 @@ item.door_bunker.name=Bunker Door item.door_metal.name=Metal Door item.door_office.name=Office Door item.dosimeter.name=Dosimeter +item.drillbit_desh.name=Desh Drillbit +item.drillbit_desh_diamond.name=Desh Drillbit (Diamond-Tipped) +item.drillbit_hss.name=High-Speed Steel Drillbit +item.drillbit_hss_diamond.name=High-Speed Steel Drillbit (Diamond-Tipped) +item.drillbit_steel.name=Steel Drillbit +item.drillbit_steel_diamond.name=Steel Drillbit (Diamond-Tipped) item.drill_titanium.name=Titanium Drill item.drax.name=Terra Drill item.drax_mk2.name=Hardened Terra Drill @@ -2762,6 +2768,18 @@ item.oil_tar.coal.name=Coal Tar item.oil_tar.crude.name=Oil Tar item.oil_tar.crack.name=Crack Oil Tar item.oil_tar.wood.name=Wood Tar +item.ore_bedrock.copper.name=Copper Bedrock Ore +item.ore_bedrock.iron.name=Iron Bedrock Ore +item.ore_centrifuged.copper.name=Centrifuged Copper Ore +item.ore_centrifuged.iron.name=Centrifuged Iron Ore +item.ore_cleaned.copper.name=Cleaned Copper Ore +item.ore_cleaned.iron.name=Cleaned Iron Ore +item.ore_enriched.copper.name=Enriched Copper Ore +item.ore_enriched.iron.name=Enriched Iron Ore +item.ore_purified.copper.name=Purified Copper Ore +item.ore_purified.iron.name=Purified Iron Ore +item.ore_separated.copper.name=Separated Copper Ore +item.ore_separated.iron.name=Separated Iron Ore item.overfuse.name=Singularity Screwdriver item.overfuse.desc=Say what? item.oxy_mask.name=Oxygen Mask @@ -4272,6 +4290,7 @@ tile.machine_drill.name=Automatic Mining Drill tile.machine_electric_furnace_off.name=Electric Furnace tile.machine_electric_furnace_on.name=Electric Furnace tile.machine_epress.name=Electric Press +tile.machine_excavator.name=Large Mining Drill tile.machine_fel.name=FEL tile.machine_fensu.name=FEnSU tile.machine_flare.name=Flare Stack @@ -4391,6 +4410,7 @@ tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore +tile.ore_bedrock.name=Bedrock Ore tile.ore_bedrock_coltan.name=Bedrock Coltan Ore tile.ore_bedrock_oil.name=Bedrock Oil Deposit tile.ore_beryllium.name=Beryllium Ore diff --git a/src/main/resources/assets/hbm/textures/blocks/toaster.png b/src/main/resources/assets/hbm/textures/blocks/toaster.png new file mode 100644 index 000000000..03835ffdf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/toaster.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/toaster_iron.png b/src/main/resources/assets/hbm/textures/blocks/toaster_iron.png new file mode 100644 index 000000000..4bf6ec53c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/toaster_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/toaster_steel.png b/src/main/resources/assets/hbm/textures/blocks/toaster_steel.png new file mode 100644 index 000000000..c3fd30076 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/toaster_steel.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/toaster_wood.png b/src/main/resources/assets/hbm/textures/blocks/toaster_wood.png new file mode 100644 index 000000000..fda413984 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/toaster_wood.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_bedrock.png b/src/main/resources/assets/hbm/textures/items/ore_bedrock.png new file mode 100644 index 000000000..6fc0af69a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_bedrock.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_centrifuged.png b/src/main/resources/assets/hbm/textures/items/ore_centrifuged.png new file mode 100644 index 000000000..b21dd9335 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_centrifuged.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_cleaned.png b/src/main/resources/assets/hbm/textures/items/ore_cleaned.png new file mode 100644 index 000000000..de2bf3f41 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_cleaned.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_cluster_bg.png b/src/main/resources/assets/hbm/textures/items/ore_cluster_bg.png deleted file mode 100644 index 5611489a9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ore_cluster_bg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_cluster_fg.png b/src/main/resources/assets/hbm/textures/items/ore_cluster_fg.png deleted file mode 100644 index 50e732064..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ore_cluster_fg.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite.png b/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite.png deleted file mode 100644 index 635bc7b32..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite_alt.png b/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite_alt.png deleted file mode 100644 index 3a68d2046..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ore_cluster_tikite_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_enriched.png b/src/main/resources/assets/hbm/textures/items/ore_enriched.png new file mode 100644 index 000000000..a5fc01a52 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_enriched.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_overlay.png b/src/main/resources/assets/hbm/textures/items/ore_overlay.png new file mode 100644 index 000000000..7dcd3d22f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_overlay.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_purified.png b/src/main/resources/assets/hbm/textures/items/ore_purified.png new file mode 100644 index 000000000..c93d537ba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_purified.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ore_separated.png b/src/main/resources/assets/hbm/textures/items/ore_separated.png new file mode 100644 index 000000000..2a0954e1c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ore_separated.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/mining_drill.png b/src/main/resources/assets/hbm/textures/models/machines/mining_drill.png index 36223f0f0..b3ff80669 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/mining_drill.png and b/src/main/resources/assets/hbm/textures/models/machines/mining_drill.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 2b8ec8ebf..734a2b2ca 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4445", + "version":"1.0.27_X4473", "mcversion": "1.7.10", "url": "", "updateUrl": "",