SHOW:
|
|
- or go back to the newest paste.
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 | } |