if ((i2 == 0) || (Block.byId[i2] == null)) { i3 = i1 + 1 & 0x3; i4 = i1 + 3 & 0x3; if (((m & 1 << i3) != 0) && (c(paramWorld.getTypeId(paramInt1 + Direction.a[i1] + Direction.a[i3], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i3])))) { paramWorld.setTypeIdAndData(paramInt1 + Direction.a[i1], paramInt2, paramInt3 + Direction.b[i1], this.id, 1 << i3); } else if (((m & 1 << i4) != 0) && (c(paramWorld.getTypeId(paramInt1 + Direction.a[i1] + Direction.a[i4], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i4])))) { paramWorld.setTypeIdAndData(paramInt1 + Direction.a[i1], paramInt2, paramInt3 + Direction.b[i1], this.id, 1 << i4); } else if (((m & 1 << i3) != 0) && (paramWorld.isEmpty(paramInt1 + Direction.a[i1] + Direction.a[i3], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i3])) && (c(paramWorld.getTypeId(paramInt1 + Direction.a[i3], paramInt2, paramInt3 + Direction.b[i3])))) { paramWorld.setTypeIdAndData(paramInt1 + Direction.a[i1] + Direction.a[i3], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i3], this.id, 1 << (i1 + 2 & 0x3)); } else if (((m & 1 << i4) != 0) && (paramWorld.isEmpty(paramInt1 + Direction.a[i1] + Direction.a[i4], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i4])) && (c(paramWorld.getTypeId(paramInt1 + Direction.a[i4], paramInt2, paramInt3 + Direction.b[i4])))) { paramWorld.setTypeIdAndData(paramInt1 + Direction.a[i1] + Direction.a[i4], paramInt2, paramInt3 + Direction.b[i1] + Direction.b[i4], this.id, 1 << (i1 + 2 & 0x3)); } else if (c(paramWorld.getTypeId(paramInt1 + Direction.a[i1], paramInt2 + 1, paramInt3 + Direction.b[i1]))) { paramWorld.setTypeIdAndData(paramInt1 + Direction.a[i1], paramInt2, paramInt3 + Direction.b[i1], this.id, 0); } } else if ((Block.byId[i2].material.j()) && (Block.byId[i2].b())) { paramWorld.setData(paramInt1, paramInt2, paramInt3, m | 1 << i1); }