diff options
-rw-r--r-- | src/Java/gtPlusPlus/core/block/ModBlocks.java | 5 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/block/base/BasicBlock.java | 11 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java | 20 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java | 76 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java | 39 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/item/ModItems.java | 4 | ||||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/blockOre_Overlay.png | bin | 0 -> 231 bytes | |||
-rw-r--r-- | src/resources/assets/miscutils/textures/blocks/blockStone.png | bin | 0 -> 223 bytes |
8 files changed, 147 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java index 2ec4d107c4..892044627f 100644 --- a/src/Java/gtPlusPlus/core/block/ModBlocks.java +++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java @@ -1,5 +1,7 @@ package gtPlusPlus.core.block; +import gtPlusPlus.core.block.base.BasicBlock.BlockTypes; +import gtPlusPlus.core.block.base.BlockBaseOre; import gtPlusPlus.core.block.general.FirePit; import gtPlusPlus.core.block.general.LightGlass; import gtPlusPlus.core.block.machine.Machine_Workbench; @@ -34,6 +36,8 @@ public final class ModBlocks { public static Block blockCasings2Misc; public static Block blockFirePit; + + public static Block blockOreFluorite; @@ -56,6 +60,7 @@ public final class ModBlocks { blockWorkbench = new Machine_Workbench().setHardness(1.5F); blockWorkbenchAdvanced = new Machine_WorkbenchAdvanced().setHardness(2.5F); blockFirePit = new FirePit(); + blockOreFluorite = new BlockBaseOre("oreFluorite", "Fluorite", Material.rock, BlockTypes.ORE, Utils.rgbtoHexValue(120, 120, 30), 3); } diff --git a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java index 364a849ebc..0083380bcb 100644 --- a/src/Java/gtPlusPlus/core/block/base/BasicBlock.java +++ b/src/Java/gtPlusPlus/core/block/base/BasicBlock.java @@ -11,6 +11,10 @@ import net.minecraft.world.World; public class BasicBlock extends BlockContainer { public BasicBlock(final String unlocalizedName, final Material material) { + this(unlocalizedName, material, 2); + } + + public BasicBlock(final String unlocalizedName, final Material material, int harvestLevel) { super(material); this.setBlockName(Utils.sanitizeString(unlocalizedName)); this.setBlockTextureName(CORE.MODID + ":" + unlocalizedName); @@ -18,14 +22,15 @@ public class BasicBlock extends BlockContainer { this.setHardness(2.0F); this.setResistance(6.0F); this.setLightLevel(0.0F); - this.setHarvestLevel("pickaxe", 2); + this.setHarvestLevel("pickaxe", harvestLevel); this.setStepSound(soundTypeMetal); } public static enum BlockTypes { - STANDARD("blockBlock", "pickaxe", soundTypeStone), - FRAME("blockFrameGt", "wrench", soundTypeMetal); + STANDARD("blockBlock", "pickaxe", soundTypeMetal), + FRAME("blockFrameGt", "wrench", soundTypeMetal), + ORE("blockOre", "pickaxe", soundTypeStone); private String TEXTURE_NAME; private String HARVEST_TOOL; diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java index a2d2589f5e..325d83f67d 100644 --- a/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java +++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseModular.java @@ -20,9 +20,14 @@ public class BlockBaseModular extends BasicBlock{ protected String thisBlockMaterial; protected final String thisBlockType; + public BlockBaseModular(String unlocalizedName, String blockMaterial, BlockTypes blockType, int colour) { - super(blockType.getTexture()+unlocalizedName, Material.iron); - this.setHarvestLevel(blockType.getHarvestTool(), 2); + this(unlocalizedName, blockMaterial, Material.iron, blockType, colour, 2); + } + + public BlockBaseModular(String unlocalizedName, String blockMaterial, Material vanillaMaterial, BlockTypes blockType, int colour, int miningLevel) { + super(blockType.getTexture()+unlocalizedName, vanillaMaterial); + this.setHarvestLevel(blockType.getHarvestTool(), miningLevel); this.setBlockTextureName(CORE.MODID+":"+blockType.getTexture()); this.blockColour = colour; this.thisBlock = blockType; @@ -48,6 +53,10 @@ public class BlockBaseModular extends BasicBlock{ LanguageRegistry.addName(this, blockMaterial+ " Frame Box"); //Utils.LOG_INFO("Registered Block in Language Registry as: "+blockMaterial+ " Frame Box"); } + else if (thisBlockType == BlockTypes.ORE.name().toUpperCase()){ + LanguageRegistry.addName(this, blockMaterial+ " Ore"); + //Utils.LOG_INFO("Registered Block in Language Registry as: "+blockMaterial+ " Frame Box"); + } else { LanguageRegistry.addName(this, blockMaterial); //Utils.LOG_INFO("Registered Block in Language Registry as: "+blockMaterial); @@ -62,6 +71,10 @@ public class BlockBaseModular extends BasicBlock{ GameRegistry.registerBlock(this, ItemBlockGtFrameBox.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName)); //Utils.LOG_INFO("Registered Block in Block Registry as: "+blockMaterial+" Frame Box"); } + else if (thisBlockType == BlockTypes.ORE.name().toUpperCase()){ + GameRegistry.registerBlock(this, ItemBlockGtBlock.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName)); + //Utils.LOG_INFO("Registered Block in Block Registry as: "+blockMaterial+" Frame Box"); + } else { GameRegistry.registerBlock(this, ItemBlockGtBlock.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName)); //Utils.LOG_INFO("Registered Block in Block Registry as: "+blockMaterial); @@ -107,6 +120,9 @@ public class BlockBaseModular extends BasicBlock{ else if (thisBlock == BlockTypes.FRAME){ tempIngot = thisBlockMaterial + " Frame Box"; } + else if (thisBlock == BlockTypes.ORE){ + tempIngot = thisBlockMaterial + " Ore"; + } else { tempIngot = getUnlocalizedName().replace("tile.blockGt", "ingot"); diff --git a/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java new file mode 100644 index 0000000000..dca12e0272 --- /dev/null +++ b/src/Java/gtPlusPlus/core/block/base/BlockBaseOre.java @@ -0,0 +1,76 @@ +package gtPlusPlus.core.block.base; + +import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.math.MathUtils; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockBaseOre extends BlockBaseModular{ + + @SuppressWarnings("unused") + private IIcon base; + @SuppressWarnings("unused") + private IIcon overlay; + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + public BlockBaseOre(String unlocalizedName, String blockMaterial, BlockTypes blockType, int colour) { + this(unlocalizedName, blockMaterial, Material.iron, blockType, colour, 2); + } + + public BlockBaseOre(String unlocalizedName, String blockMaterial, Material vanillaMaterial, BlockTypes blockType, int colour, int miningLevel) { + super(blockType.getTexture()+unlocalizedName, blockMaterial, vanillaMaterial, blockType, colour, miningLevel); + } + + /** + * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha + */ + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() + { + return 1; + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iIcon) + { + //this.blockIcon = iIcon.registerIcon(CORE.MODID + ":" + thisBlock.getTexture()); + this.base = iIcon.registerIcon(CORE.MODID + ":" + "blockStone"); + this.overlay = iIcon.registerIcon(CORE.MODID + ":" + "blockOre_Overlay"); + } + + @Override + public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4){ + if (this.blockColour == 0){ + return MathUtils.generateSingularRandomHexValue(); + } + return this.blockColour; + } + + @Override + public int getRenderColor(int aMeta) { + if (this.blockColour == 0){ + return MathUtils.generateSingularRandomHexValue(); + } + return this.blockColour; + } + + + + +} diff --git a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java index d01a259aaa..796d9fca77 100644 --- a/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/BlockEventHandler.java @@ -1,17 +1,22 @@ package gtPlusPlus.core.handler.events; +import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.math.MathUtils; +import java.util.ArrayList; import java.util.Random; import net.minecraft.init.Blocks; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class BlockEventHandler { @@ -52,11 +57,18 @@ public class BlockEventHandler { } }*/ } + + @SubscribeEvent public void onBlockBreak(BlockEvent.BreakEvent event) { - + } + + + ArrayList<ItemStack> oreLimestone = OreDictionary.getOres("oreLimestone"); + ArrayList<ItemStack> blockLimestone = OreDictionary.getOres("limestone"); + ItemStack fluoriteOre = ItemUtils.getSimpleStack(Item.getItemFromBlock(ModBlocks.blockOreFluorite)); //Used to handle Thaumcraft Shards when TC is not installed. @SubscribeEvent @@ -92,6 +104,31 @@ public class BlockEventHandler { Utils.LOG_INFO("invalid chance"); } } + + //Spawns Fluorite from Lime Stone + if (!oreLimestone.isEmpty() || !blockLimestone.isEmpty()){ + if (!oreLimestone.isEmpty()) + for (ItemStack temp : oreLimestone){ + if (ItemUtils.getSimpleStack(Item.getItemFromBlock(event.block)) == temp) { + if (MathUtils.randInt(1, 64) == 1){ + event.drops.add(fluoriteOre.copy()); + } + } + } + if (!oreLimestone.isEmpty()) + for (ItemStack temp : blockLimestone){ + if (ItemUtils.getSimpleStack(Item.getItemFromBlock(event.block)) == temp) { + if (MathUtils.randInt(1, 64) == 1){ + event.drops.add(fluoriteOre.copy()); + } + } + } + } + if (event.block == Blocks.sandstone){ + if (MathUtils.randInt(1, 640) == 1){ + event.drops.add(fluoriteOre.copy()); + } + } //} } diff --git a/src/Java/gtPlusPlus/core/item/ModItems.java b/src/Java/gtPlusPlus/core/item/ModItems.java index fe8ba70e35..f488a48424 100644 --- a/src/Java/gtPlusPlus/core/item/ModItems.java +++ b/src/Java/gtPlusPlus/core/item/ModItems.java @@ -400,10 +400,10 @@ public final class ModItems { dustZrCl4 = ItemUtils.generateSpecialUseDusts("ZrCl4", "ZrCl4", Utils.rgbtoHexValue(180, 180, 180))[0]; //http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/39/036/39036750.pdf dustCookedZrCl4 = ItemUtils.generateSpecialUseDusts("CookedZrCl4", "Cooked ZrCl4", Utils.rgbtoHexValue(180, 180, 180))[0]; //http://www.iaea.org/inis/collection/NCLCollectionStore/_Public/39/036/39036750.pdf //Zirconium Tetrafluoride - dustZrF4 = ItemUtils.generateSpecialUseDusts("ZrF4", "ZrF4", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + //dustZrF4 = ItemUtils.generateSpecialUseDusts("ZrF4", "ZrF4", Utils.rgbtoHexValue(170, 170, 170))[0]; //https://en.wikipedia.org/wiki/Zirconium_tetrafluoride + //GT_OreDictUnificator.registerOre("dustZirconiumTetrafluoride", new ItemStack(ModItems.dustZrF4)); GT_OreDictUnificator.registerOre("cellZrF4", ItemUtils.getItemStackOfAmountFromOreDict("cellZirconiumTetrafluoride", 1)); GT_OreDictUnificator.registerOre("dustZrF4", ItemUtils.getItemStackOfAmountFromOreDict("dustZirconiumTetrafluoride", 1)); - GT_OreDictUnificator.registerOre("dustZirconiumTetrafluoride", new ItemStack(ModItems.dustZrF4)); FluidUtils.generateFluid("ZirconiumTetrafluoride", "Zirconium Tetrafluoride", 500, new short[]{170, 170, 140, 100}); //Coolant Salt diff --git a/src/resources/assets/miscutils/textures/blocks/blockOre_Overlay.png b/src/resources/assets/miscutils/textures/blocks/blockOre_Overlay.png Binary files differnew file mode 100644 index 0000000000..b7155ba3dc --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/blockOre_Overlay.png diff --git a/src/resources/assets/miscutils/textures/blocks/blockStone.png b/src/resources/assets/miscutils/textures/blocks/blockStone.png Binary files differnew file mode 100644 index 0000000000..87e19ff46b --- /dev/null +++ b/src/resources/assets/miscutils/textures/blocks/blockStone.png |