From 5fce447142b3c0f4a214ca7eb208d9e5c25e6377 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Sun, 23 Mar 2014 19:01:47 +0200 Subject: Added necklaces, Altar Block, new stuff, better Shadow Ingot texture --- .../jewelrycraft/block/BlockJewelAltar.java | 115 +++++++++++++++++++++ .../darkknight/jewelrycraft/block/BlockList.java | 4 + .../darkknight/jewelrycraft/block/BlockShadow.java | 6 +- 3 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 common/darkknight/jewelrycraft/block/BlockJewelAltar.java (limited to 'common/darkknight/jewelrycraft/block') diff --git a/common/darkknight/jewelrycraft/block/BlockJewelAltar.java b/common/darkknight/jewelrycraft/block/BlockJewelAltar.java new file mode 100644 index 0000000..2fab829 --- /dev/null +++ b/common/darkknight/jewelrycraft/block/BlockJewelAltar.java @@ -0,0 +1,115 @@ +package darkknight.jewelrycraft.block; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.tileentity.*; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Icon; +import net.minecraft.world.World; + +public class BlockJewelAltar extends BlockContainer +{ + @SideOnly(Side.CLIENT) + private Icon altarSide; + @SideOnly(Side.CLIENT) + private Icon altarBottom; + @SideOnly(Side.CLIENT) + private Icon altarTop; + + public BlockJewelAltar(int par1) + { + super(par1, Material.iron); + } + + public static boolean isNormalCube(int par0) + { + return true; + } + + public void registerIcons(IconRegister par1IconRegister) + { + this.altarSide = par1IconRegister.registerIcon(this.getTextureName() + "_" + "side"); + this.altarBottom = par1IconRegister.registerIcon(this.getTextureName() + "_" + "bottom"); + this.altarTop = par1IconRegister.registerIcon(this.getTextureName() + "_" + "top"); + } + + public Icon getIcon(int par1, int par2) + { + return par1 == 1 ? this.altarTop : (par1 == 0 ? this.altarBottom : this.altarSide); + } + + @Override + public boolean onBlockActivated(World world, int i, int j, int k, EntityPlayer entityPlayer, int par6, float par7, float par8, float par9) + { + TileEntityAltar te = (TileEntityAltar) world.getBlockTileEntity(i, j, k); + ItemStack item = entityPlayer.inventory.getCurrentItem(); + if (te != null && !world.isRemote) + { + if(item != null && item != new ItemStack(0, 0, 0) && (item.itemID == ItemList.ring.itemID || item.itemID == ItemList.necklace.itemID) && !te.hasObject) + { + te.object = item.copy(); + item.stackSize = 0; + te.playerName = entityPlayer.username; + te.isDirty = true; + te.hasObject = true; + } + + if(te.object != null && te.object != new ItemStack(0, 0, 0) && te.hasObject && entityPlayer.isSneaking()) + { + entityPlayer.inventory.addItemStackToInventory(te.object); + te.object = new ItemStack(0, 0, 0); + te.playerName = ""; + te.isDirty = true; + te.hasObject = false; + } + } + return true; + } + + @Override + public void onBlockClicked(World world, int i, int j, int k, EntityPlayer player) + { + TileEntityAltar te = (TileEntityAltar) world.getBlockTileEntity(i, j, k); + if (te != null && !world.isRemote) + { + if (te.object != null && te.object != new ItemStack(0, 0, 0)) + { + } + } + } + + public void dropItem(World world, double x, double y, double z, ItemStack stack) + { + EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 1.5D, z + 0.5D, stack); + entityitem.motionX = 0; + entityitem.motionZ = 0; + entityitem.motionY = 0.11000000298023224D; + world.spawnEntityInWorld(entityitem); + } + + public void breakBlock(World world, int i, int j, int k, int par5, int par6) + { + TileEntityAltar te = (TileEntityAltar) world.getBlockTileEntity(i, j, k); + + if (te != null && te.object != null && te.object != new ItemStack(0, 0, 0)) + { + dropItem(te.worldObj, (double)te.xCoord, (double)te.yCoord, (double)te.zCoord, te.object); + world.markTileEntityForDespawn(te); + } + + super.breakBlock(world, i, j, k, par5, par6); + } + + @Override + public TileEntity createNewTileEntity(World world) + { + return new TileEntityAltar(); + } +} diff --git a/common/darkknight/jewelrycraft/block/BlockList.java b/common/darkknight/jewelrycraft/block/BlockList.java index 09a8dbc..5f7cbe6 100644 --- a/common/darkknight/jewelrycraft/block/BlockList.java +++ b/common/darkknight/jewelrycraft/block/BlockList.java @@ -17,6 +17,7 @@ public class BlockList public static Block displayer; public static Block jewelCraftingTable; public static Block shadowBlock; + public static Block jewelAltar; private static boolean isInitialized = false; @@ -31,6 +32,7 @@ public class BlockList displayer = new BlockDisplayer(ConfigHandler.idDisplayer, Material.iron).setHardness(5.0F).setResistance(6.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("Jewelrycraft.displayer").setCreativeTab(JewelrycraftMod.jewelrycraft); jewelCraftingTable = new BlockJewelrsCraftingTable(ConfigHandler.idJewelCraftingTable, Material.rock).setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("Jewelrycraft.jewelCraftingTable").setCreativeTab(JewelrycraftMod.jewelrycraft); shadowBlock = new BlockShadow(ConfigHandler.idShadowBlock).setHardness(5.0F).setResistance(7.0F).setStepSound(Block.soundMetalFootstep).setTextureName("jewelrycraft:blockShadow").setUnlocalizedName("Jewelrycraft.blockShadow").setCreativeTab(JewelrycraftMod.jewelrycraft); + jewelAltar = new BlockJewelAltar(ConfigHandler.idAltar).setHardness(5.0F).setResistance(2.0F).setStepSound(Block.soundMetalFootstep).setTextureName("jewelrycraft:altar").setUnlocalizedName("Jewelrycraft.altar").setCreativeTab(JewelrycraftMod.jewelrycraft); GameRegistry.registerBlock(shadowOre, "shadowOre"); GameRegistry.registerBlock(shadowBlock, "shadowBlock"); @@ -38,12 +40,14 @@ public class BlockList GameRegistry.registerBlock(molder, "Molder"); GameRegistry.registerBlock(jewelCraftingTable, "jewelCraftingTable"); GameRegistry.registerBlock(displayer, "Displayer"); + GameRegistry.registerBlock(jewelAltar, "Altar"); GameRegistry.registerTileEntity(TileEntitySmelter.class, "30"); GameRegistry.registerTileEntity(TileEntityMolder.class, "31"); GameRegistry.registerTileEntity(TileEntityJewelrsCraftingTable.class, "32"); GameRegistry.registerTileEntity(TileEntityDisplayer.class, "33"); GameRegistry.registerTileEntity(TileEntityBlockShadow.class, "34"); + GameRegistry.registerTileEntity(TileEntityAltar.class, "35"); isInitialized = true; } diff --git a/common/darkknight/jewelrycraft/block/BlockShadow.java b/common/darkknight/jewelrycraft/block/BlockShadow.java index 9aeb82a..dc058f1 100644 --- a/common/darkknight/jewelrycraft/block/BlockShadow.java +++ b/common/darkknight/jewelrycraft/block/BlockShadow.java @@ -43,7 +43,7 @@ public class BlockShadow extends BlockContainer public boolean isBlockSolidOnSide(World world, int x, int y, int z, ForgeDirection side) { - return true; + return false; } public static boolean isNormalCube(int par0) @@ -78,9 +78,9 @@ public class BlockShadow extends BlockContainer this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } - public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + public boolean shouldSideBeRendered(IBlockAccess iBlockAccess, int par2, int par3, int par4, int par5) { - return true; + return iBlockAccess.isAirBlock(par2, par3, par4)?true:false; } public boolean hasComparatorInputOverride() -- cgit v1.2.3