Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}