package lostcave.deathchests.block; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockEnderChest; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.InventoryEnderChest; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityEnderChest; import net.minecraft.world.Explosion; import net.minecraft.world.World; public class BlockDeathChest extends BlockEnderChest { private static final BlockDeathChest instance = new BlockDeathChest(); public static BlockDeathChest getInstance() { return instance; } private BlockDeathChest() { super(); this.setBlockName("death_chest"); this.disableStats(); this.setBlockUnbreakable(); // same value as bedrock this.setResistance(6000000.0F); } @Override protected boolean canSilkHarvest() { return false; } @Override public boolean canDropFromExplosion(Explosion p_149659_1_) { return false; } @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return null; } /** * Called upon block activation (right click on the block.) */ @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (world.isRemote) return true; TileDeathChest tiledeathchest = (TileDeathChest) world.getTileEntity(x, y, z); if (tiledeathchest != null) { //TODO: check if appropriate player //TODO: drop items return true; } else return true; } /** * Called when a player hits the block. Args: world, x, y, z, player */ @Override public void onBlockClicked(World p_149699_1_, int p_149699_2_, int p_149699_3_, int p_149699_4_, EntityPlayer p_149699_5_) { //TODO } /** * Returns a new instance of a block's tile entity class. Called on placing the * block. */ @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileDeathChest(); } /** * A randomly called display update to be able to add particles or other items * for display *
*
* This is here to disable the particles that would otherwise be emitted */ @Override @SideOnly(Side.CLIENT) public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_) { } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister p_149651_1_) { this.blockIcon = p_149651_1_.registerIcon("cobblestone"); } public static class TileDeathChest extends TileEntity { //TODO } //TODO: Custom texture? (optional) //TODO: add chest inventory //TODO: drop chest contents //TODO: Remove chest when empty //TODO: make unable to break by explosion (configurable?) //TODO: Make it so items can only be taken out of the chest? // Custom GUI? Maybe remove GUI altogether and have it drop the items when broken? }