From 2a7e0a624f482a28af1c770dbcf2a20f52f94f78 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Sun, 19 Apr 2015 03:30:08 +0100 Subject: Added Midas Touch --- .../block/BlockJewelrsCraftingTable.java | 4 +- .../darkknight/jewelrycraft/block/BlockList.java | 9 ++- .../jewelrycraft/block/BlockMidasTouch.java | 83 ++++++++++++++++++++++ .../darkknight/jewelrycraft/block/BlockMolder.java | 2 +- .../darkknight/jewelrycraft/block/BlockShadow.java | 1 + .../jewelrycraft/block/BlockSmelter.java | 7 +- 6 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 src/main/java/darkknight/jewelrycraft/block/BlockMidasTouch.java (limited to 'src/main/java/darkknight/jewelrycraft/block') diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java b/src/main/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java index fe245e6..a5d058b 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockJewelrsCraftingTable.java @@ -87,7 +87,7 @@ public class BlockJewelrsCraftingTable extends BlockContainer te.isDirty = true; } if (!te.hasEndItem && te.hasJewelry && te.hasGem && !te.crafting){ - te.carving = ConfigHandler.jewelryCraftingTime; + te.carving = ConfigHandler.GEM_PLACEMENT_TIME; te.angle = 0; te.crafting = true; te.isDirty = true; @@ -183,7 +183,7 @@ public class BlockJewelrsCraftingTable extends BlockContainer te.endItem = new ItemStack(Item.getItemById(0), 0, 0); te.hasEndItem = false; te.isDirty = true; - }else if (te.hasJewelry && te.hasGem && te.carving > 0 && te.jewelry != null) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage." + Variables.MODID + ".table.iscrafting", te.jewelry.getDisplayName()) + " (" + (ConfigHandler.jewelryCraftingTime - te.carving) * 100 / ConfigHandler.jewelryCraftingTime + "%)")); + }else if (te.hasJewelry && te.hasGem && te.carving > 0 && te.jewelry != null) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage." + Variables.MODID + ".table.iscrafting", te.jewelry.getDisplayName()) + " (" + (ConfigHandler.GEM_PLACEMENT_TIME - te.carving) * 100 / ConfigHandler.GEM_PLACEMENT_TIME + "%)")); else if (!te.hasGem) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".table.missinggem"))); else if (!te.hasJewelry) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".table.missingjewelry"))); } diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockList.java b/src/main/java/darkknight/jewelrycraft/block/BlockList.java index 7fae41c..a42a1f3 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockList.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockList.java @@ -12,6 +12,7 @@ import darkknight.jewelrycraft.tileentity.TileEntityBlockShadow; import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; import darkknight.jewelrycraft.tileentity.TileEntityHandPedestal; import darkknight.jewelrycraft.tileentity.TileEntityJewelrsCraftingTable; +import darkknight.jewelrycraft.tileentity.TileEntityMidasTouch; import darkknight.jewelrycraft.tileentity.TileEntityMolder; import darkknight.jewelrycraft.tileentity.TileEntityShadowEye; import darkknight.jewelrycraft.tileentity.TileEntityShadowHand; @@ -20,7 +21,7 @@ import darkknight.jewelrycraft.util.Variables; public class BlockList { - public static Block shadowOre, smelter, molder, displayer, jewelCraftingTable, shadowBlock, shadowEye, jewelAltar, handPedestal, shadowHand; + public static Block shadowOre, smelter, molder, displayer, jewelCraftingTable, shadowBlock, shadowEye, jewelAltar, handPedestal, shadowHand, midasTouchBlock; public static BlockMoltenMetal moltenMetal; public static Fluid moltenMetalFluid; private static boolean isInitialized = false; @@ -41,6 +42,8 @@ public class BlockList shadowEye = new BlockShadowEye().setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName(Variables.MODID + ".shadowEye").setCreativeTab(JewelrycraftMod.jewelrycraft); handPedestal = new BlockHandPedestal(Material.rock).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundTypePiston).setBlockName(Variables.MODID + ".handPedestal").setCreativeTab(JewelrycraftMod.jewelrycraft); shadowHand = new BlockShadowHand(Material.rock).setStepSound(Block.soundTypePiston).setBlockName(Variables.MODID + ".shadowHand").setCreativeTab(JewelrycraftMod.jewelrycraft).setBlockUnbreakable(); + midasTouchBlock = new BlockMidasTouch(Material.iron).setHardness(3.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal).setBlockName(Variables.MODID + ".midasTouchBlock"); + GameRegistry.registerBlock(shadowOre, "shadowOre"); GameRegistry.registerBlock(shadowBlock, "shadowBlock"); GameRegistry.registerBlock(smelter, "Smelter"); @@ -51,6 +54,8 @@ public class BlockList GameRegistry.registerBlock(shadowEye, "Shadow Eye"); GameRegistry.registerBlock(handPedestal, "Stone Bricks Pedestal"); GameRegistry.registerBlock(shadowHand, "Shadow Hand"); + GameRegistry.registerBlock(midasTouchBlock, "Midas Touch Block"); + GameRegistry.registerTileEntity(TileEntitySmelter.class, Variables.MODID + ":smelter"); GameRegistry.registerTileEntity(TileEntityMolder.class, Variables.MODID + ":molder"); GameRegistry.registerTileEntity(TileEntityJewelrsCraftingTable.class, Variables.MODID + ":table"); @@ -60,6 +65,8 @@ public class BlockList GameRegistry.registerTileEntity(TileEntityShadowEye.class, Variables.MODID + ":shadowEye"); GameRegistry.registerTileEntity(TileEntityHandPedestal.class, Variables.MODID + ":handPedestal"); GameRegistry.registerTileEntity(TileEntityShadowHand.class, Variables.MODID + ":shadowHand"); + GameRegistry.registerTileEntity(TileEntityMidasTouch.class, Variables.MODID + ":midsaTouch"); + moltenMetalFluid = new Fluid("metal.molten").setLuminosity(15).setDensity(3000).setTemperature(2000).setViscosity(6000); if (!FluidRegistry.registerFluid(moltenMetalFluid)) moltenMetalFluid = FluidRegistry.getFluid("metal.molten"); moltenMetal = new BlockMoltenMetal(moltenMetalFluid, Material.lava); diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockMidasTouch.java b/src/main/java/darkknight/jewelrycraft/block/BlockMidasTouch.java new file mode 100644 index 0000000..4e09e4a --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/block/BlockMidasTouch.java @@ -0,0 +1,83 @@ +package darkknight.jewelrycraft.block; + +import java.util.ArrayList; +import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import darkknight.jewelrycraft.tileentity.TileEntityMidasTouch; +import darkknight.jewelrycraft.tileentity.TileEntityMolder; + +public class BlockMidasTouch extends BlockContainer +{ + protected BlockMidasTouch(Material mat) + { + super(mat); + setHarvestLevel("pickaxe", 2); + } + + @Override + public TileEntity createNewTileEntity(World world, int var2) + { + return new TileEntityMidasTouch(); + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + + @Override + public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l) + { + return false; + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public int getRenderType() + { + return -1; + } + + public int quantityDropped(Random rand) + { + return 0; + } + + public Item getItemDropped(int id, Random rand, int size) + { + return Items.gold_nugget; + } + + public void onBlockHarvested(World world, int i, int j, int k, int meta, EntityPlayer player) + { + } + + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) + { + TileEntity tile = world.getTileEntity(x, y, z); + if (((TileEntityMidasTouch)tile).target != null) this.setBlockBounds(0.5f - ((TileEntityMidasTouch)tile).target.width / 2, 0F, 0.5f - ((TileEntityMidasTouch)tile).target.width / 2, 0.5f + ((TileEntityMidasTouch)tile).target.width / 2, ((TileEntityMidasTouch)tile).target.height, 0.5f + ((TileEntityMidasTouch)tile).target.width / 2); + } + + @Override + public void registerBlockIcons(IIconRegister icon) + { + blockIcon = icon.registerIcon("minecraft:gold_block"); + } +} diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockMolder.java b/src/main/java/darkknight/jewelrycraft/block/BlockMolder.java index 5840c72..8c152e3 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockMolder.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockMolder.java @@ -156,7 +156,7 @@ public class BlockMolder extends BlockContainer dropItem(me.getWorldObj(), me.xCoord, me.yCoord, me.zCoord, me.jewelBase.copy()); me.jewelBase = new ItemStack(Item.getItemById(0), 0, 0); me.hasJewelBase = false; - }else if (me.hasMoltenMetal && me.cooling >= 0) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".molder.metaliscooling") + " (" + (ConfigHandler.ingotCoolingTime - me.cooling) * 100 / ConfigHandler.ingotCoolingTime + "%)")); + }else if (me.hasMoltenMetal && me.cooling >= 0) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".molder.metaliscooling") + " (" + (ConfigHandler.INGOT_COOLING_TIME - me.cooling) * 100 / ConfigHandler.INGOT_COOLING_TIME + "%)")); else if (me.mold.getItem() == ItemList.molds && !me.hasMoltenMetal) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".molder.moldisempty"))); else if (me.mold.getItem() != ItemList.molds) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".molder.moldismissing"))); me.isDirty = true; diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockShadow.java b/src/main/java/darkknight/jewelrycraft/block/BlockShadow.java index b175fe6..9312c7a 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockShadow.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockShadow.java @@ -24,6 +24,7 @@ public class BlockShadow extends BlockContainer public BlockShadow() { super(Material.iron); + setHarvestLevel("pickaxe", 3); setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java b/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java index aa41003..ec33fde 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java @@ -156,14 +156,14 @@ public class BlockSmelter extends BlockContainer // if (Item.getIdFromItem(te.metal.getItem()) == Block.getIdFromBlock(Blocks.stained_glass) || Item.getIdFromItem(te.metal.getItem()) == Block.getIdFromBlock(Blocks.stained_hardened_clay) || Item.getIdFromItem(te.metal.getItem()) == Block.getIdFromBlock(Blocks.wool) || Item.getIdFromItem(te.metal.getItem()) == Block.getIdFromBlock(Blocks.carpet)) te.metal.setItemDamage(15 - te.metal.getItemDamage()); te.metal.stackSize = 1; te.hasMetal = true; - te.melting = ConfigHandler.ingotMeltingTime; + te.melting = ConfigHandler.INGOT_MELTING_TIME; if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize; te.isDirty = true; }else if (te.hasMetal && te.hasMoltenMetal && check2 && overflow || te.hasMetal && !te.hasMoltenMetal && itemCoincidesWithMetal && overflow){ entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("Smelting extra " + (isOre ? "ores" : "ingots") + " (" + (te.metal.stackSize + 1) + ")"))); te.metal.stackSize++; te.hasMetal = true; - te.melting += ConfigHandler.ingotMeltingTime; + te.melting += ConfigHandler.INGOT_MELTING_TIME; if (!entityPlayer.capabilities.isCreativeMode) --item.stackSize; te.isDirty = true; } @@ -200,8 +200,7 @@ public class BlockSmelter extends BlockContainer if (te != null && me != null && !world.isRemote) if (te.hasMoltenMetal && isConnectedToMolder(world, i, j, k) && me != null && me.hasMold && !me.hasMoltenMetal && !me.hasJewelBase){ te.pouring = true; te.isDirty = true; -// System.out.println(Block.getBlockById(Item.getIdFromItem(te.moltenMetal.getItem()))); - }else if (te.hasMetal && te.melting > 0) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage." + Variables.MODID + ".smelter.metalismelting", te.metal.getDisplayName()) + " (" + (ConfigHandler.ingotMeltingTime * te.metal.stackSize - te.melting) * 100 / (ConfigHandler.ingotMeltingTime * te.metal.stackSize) + "%)")); + }else if (te.hasMetal && te.melting > 0) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage." + Variables.MODID + ".smelter.metalismelting", te.metal.getDisplayName()) + " (" + (ConfigHandler.INGOT_MELTING_TIME * te.metal.stackSize - te.melting) * 100 / (ConfigHandler.INGOT_MELTING_TIME * te.metal.stackSize) + "%)")); else if (te.hasMoltenMetal && !isConnectedToMolder(world, i, j, k)) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".smelter.molderismissing"))); else if (!me.hasMold && te.hasMoltenMetal) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".smelter.molderhasnomold"))); else if (me.hasMoltenMetal && te.hasMoltenMetal) player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".smelter.molderhasmoltenmetal"))); -- cgit v1.2.3