bedrock ore processing speedrun (any%)
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<AStack> materials = IRepairable.getRepairMaterials(world, x, y, z, this, Minecraft.getMinecraft().thePlayer);
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz");
|
||||
|
||||
if(quartz != null && !quartz.isEmpty()) {
|
||||
|
||||
@ -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<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz");
|
||||
|
||||
if(quartz != null && !quartz.isEmpty()) {
|
||||
|
||||
@ -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 */
|
||||
|
||||
@ -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());
|
||||
|
||||
65
src/main/java/com/hbm/items/special/ItemBedrockOre.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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<ItemStack> 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<ItemStack> 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) {
|
||||
|
||||
@ -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++) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
43
src/main/java/com/hbm/world/feature/BedrockOre.java
Normal file
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/blocks/toaster.png
Normal file
|
After Width: | Height: | Size: 201 B |
BIN
src/main/resources/assets/hbm/textures/blocks/toaster_iron.png
Normal file
|
After Width: | Height: | Size: 283 B |
BIN
src/main/resources/assets/hbm/textures/blocks/toaster_steel.png
Normal file
|
After Width: | Height: | Size: 289 B |
BIN
src/main/resources/assets/hbm/textures/blocks/toaster_wood.png
Normal file
|
After Width: | Height: | Size: 399 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_bedrock.png
Normal file
|
After Width: | Height: | Size: 404 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_centrifuged.png
Normal file
|
After Width: | Height: | Size: 392 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_cleaned.png
Normal file
|
After Width: | Height: | Size: 389 B |
|
Before Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 261 B |
|
Before Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 409 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_enriched.png
Normal file
|
After Width: | Height: | Size: 389 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_overlay.png
Normal file
|
After Width: | Height: | Size: 151 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_purified.png
Normal file
|
After Width: | Height: | Size: 481 B |
BIN
src/main/resources/assets/hbm/textures/items/ore_separated.png
Normal file
|
After Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 8.9 KiB |
@ -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": "",
|
||||
|
||||