Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 147 lines 4.7 kB view raw
1package net.minecraft.server; 2 3import java.util.Random; 4 5public class BlockPistonMoving extends BlockContainer { 6 7 public BlockPistonMoving(int i) { 8 super(i, Material.PISTON); 9 this.c(-1.0F); 10 } 11 12 protected TileEntity a_() { 13 return null; 14 } 15 16 public void c(World world, int i, int j, int k) { 17 } 18 19 public void remove(World world, int i, int j, int k) { 20 TileEntity tileentity = world.getTileEntity(i, j, k); 21 22 if (tileentity != null && tileentity instanceof TileEntityPiston) { 23 ((TileEntityPiston) tileentity).k(); 24 } else { 25 super.remove(world, i, j, k); 26 } 27 } 28 29 public boolean canPlace(World world, int i, int j, int k) { 30 return false; 31 } 32 33 public boolean canPlace(World world, int i, int j, int k, int l) { 34 return false; 35 } 36 37 public boolean a() { 38 return false; 39 } 40 41 public boolean b() { 42 return false; 43 } 44 45 public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { 46 if (!world.isStatic && world.getTileEntity(i, j, k) == null) { 47 world.setTypeId(i, j, k, 0); 48 return true; 49 } else { 50 return false; 51 } 52 } 53 54 public int a(int i, Random random) { 55 return 0; 56 } 57 58 public void dropNaturally(World world, int i, int j, int k, int l, float f) { 59 if (!world.isStatic) { 60 TileEntityPiston tileentitypiston = this.b(world, i, j, k); 61 62 if (tileentitypiston != null) { 63 Block.byId[tileentitypiston.a()].g(world, i, j, k, tileentitypiston.e()); 64 } 65 } 66 } 67 68 public void doPhysics(World world, int i, int j, int k, int l) { 69 if (!world.isStatic && world.getTileEntity(i, j, k) == null) { 70 ; 71 } 72 } 73 74 public static TileEntity a(int i, int j, int k, boolean flag, boolean flag1) { 75 return new TileEntityPiston(i, j, k, flag, flag1); 76 } 77 78 public AxisAlignedBB e(World world, int i, int j, int k) { 79 TileEntityPiston tileentitypiston = this.b(world, i, j, k); 80 81 if (tileentitypiston == null) { 82 return null; 83 } else { 84 float f = tileentitypiston.a(0.0F); 85 86 if (tileentitypiston.c()) { 87 f = 1.0F - f; 88 } 89 90 return this.a(world, i, j, k, tileentitypiston.a(), f, tileentitypiston.d()); 91 } 92 } 93 94 public void a(IBlockAccess iblockaccess, int i, int j, int k) { 95 TileEntityPiston tileentitypiston = this.b(iblockaccess, i, j, k); 96 97 if (tileentitypiston != null) { 98 Block block = Block.byId[tileentitypiston.a()]; 99 100 if (block == null || block == this) { 101 return; 102 } 103 104 block.a(iblockaccess, i, j, k); 105 float f = tileentitypiston.a(0.0F); 106 107 if (tileentitypiston.c()) { 108 f = 1.0F - f; 109 } 110 111 int l = tileentitypiston.d(); 112 113 this.minX = block.minX - (double) ((float) PistonBlockTextures.b[l] * f); 114 this.minY = block.minY - (double) ((float) PistonBlockTextures.c[l] * f); 115 this.minZ = block.minZ - (double) ((float) PistonBlockTextures.d[l] * f); 116 this.maxX = block.maxX - (double) ((float) PistonBlockTextures.b[l] * f); 117 this.maxY = block.maxY - (double) ((float) PistonBlockTextures.c[l] * f); 118 this.maxZ = block.maxZ - (double) ((float) PistonBlockTextures.d[l] * f); 119 } 120 } 121 122 public AxisAlignedBB a(World world, int i, int j, int k, int l, float f, int i1) { 123 if (l != 0 && l != this.id) { 124 AxisAlignedBB axisalignedbb = Block.byId[l].e(world, i, j, k); 125 126 if (axisalignedbb == null) { 127 return null; 128 } else { 129 axisalignedbb.a -= (double) ((float) PistonBlockTextures.b[i1] * f); 130 axisalignedbb.d -= (double) ((float) PistonBlockTextures.b[i1] * f); 131 axisalignedbb.b -= (double) ((float) PistonBlockTextures.c[i1] * f); 132 axisalignedbb.e -= (double) ((float) PistonBlockTextures.c[i1] * f); 133 axisalignedbb.c -= (double) ((float) PistonBlockTextures.d[i1] * f); 134 axisalignedbb.f -= (double) ((float) PistonBlockTextures.d[i1] * f); 135 return axisalignedbb; 136 } 137 } else { 138 return null; 139 } 140 } 141 142 private TileEntityPiston b(IBlockAccess iblockaccess, int i, int j, int k) { 143 TileEntity tileentity = iblockaccess.getTileEntity(i, j, k); 144 145 return tileentity != null && tileentity instanceof TileEntityPiston ? (TileEntityPiston) tileentity : null; 146 } 147}