Advertisement
Guest User

BlockTiny.java

a guest
Sep 5th, 2012
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import java.util.Random;
  4.  
  5. public class BlockTiny extends BlockContainer {
  6.  
  7. protected BlockTiny(int id) {
  8. super(id, Material.wood);
  9. setHardness(2.0F);
  10. setResistance(5.0F);
  11. setBlockName("blockTiny");
  12. setCreativeTab(CreativeTabs.tabDeco);
  13. }
  14.  
  15. @Override
  16. public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int idk, float what, float these, float are) {
  17. TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
  18. if (tileEntity == null || player.isSneaking()) {
  19. return false;
  20. }
  21.  
  22. player.openGui(MechanicTools.instance, 0, world, x, y, z);
  23. return true;
  24. }
  25.  
  26. @Override
  27. public void breakBlock(World world, int x, int y, int z, int par5, int par6) {
  28. dropItems(world, x, y, z);
  29. super.breakBlock(world, x, y, z, par5, par6);
  30. }
  31.  
  32. private void dropItems(World world, int x, int y, int z) {
  33. Random rand = new Random();
  34.  
  35. TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
  36. if (!(tileEntity instanceof IInventory)) {
  37. return;
  38. }
  39. IInventory inventory = (IInventory) tileEntity;
  40.  
  41. for (int i = 0; i < inventory.getSizeInventory(); i++) {
  42. ItemStack item = inventory.getStackInSlot(i);
  43.  
  44. if (item != null && item.stackSize > 0) {
  45. float rx = rand.nextFloat() * 0.8F + 0.1F;
  46. float ry = rand.nextFloat() * 0.8F + 0.1F;
  47. float rz = rand.nextFloat() * 0.8F + 0.1F;
  48.  
  49. EntityItem entityItem = new EntityItem(world, x + rx, y + ry, z + rz, new ItemStack(item.itemID, item.stackSize, item.getItemDamage()));
  50.  
  51. if (item.hasTagCompound()) {
  52. entityItem.item.setTagCompound((NBTTagCompound) item.getTagCompound().copy());
  53. }
  54.  
  55. float factor = 0.05F;
  56. entityItem.motionX = rand.nextGaussian() * factor;
  57. entityItem.motionY = rand.nextGaussian() * factor + 0.2F;
  58. entityItem.motionZ = rand.nextGaussian() * factor;
  59. world.spawnEntityInWorld(entityItem);
  60. item.stackSize = 0;
  61. }
  62. }
  63. }
  64.  
  65. @Override
  66. public TileEntity createNewTileEntity(World var1) {
  67. return new TileEntityTiny();
  68. }
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement