private void revertDummies() { int n = 0; boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; boolean derp = false; for (int k = -1; k < 3; k++) for (int i = 0; i < 7; i++) for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r != 3 && !(k == -1 && r <= 3)) continue; if (j == 0 && k == 0 && (i == 0 || i == 1)) continue; if (k == 2 && i == 3 && j == 0) continue; int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; Block id = worldObj.getBlock(x, y, z); if (id != limekiln) // BlockLimekilnDummy.instance.blockID) continue; worldObj.setBlock(x, y, z, derp ? brick_block : partBlocks); worldObj.markBlockForUpdate(x, y, z); } isValidMultiblock = false; }
boolean checkInside() { boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; for (int k = 0; k < 4; k++) for (int i = 0; i < 7; i++) for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r >= 3 && !(k == 2 && i == 3 && j == 0)) continue; if (j == 0 && k == 0 && i == 0) continue; int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; Vector3 loc = new Vector3(x, y, z); Block id = loc.getBlock(worldObj); if (!(loc.isAir(worldObj) || id == fire)) return false; } return true; }
public void convertDummies() { int n = 0; boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; for (int k = -1; k < 3; k++) for (int i = 0; i < 7; i++) for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r != 3 && !(k == -1 && r <= 3)) continue; if (j == 0 && k == 0 && (i == 0 || i == 1)) continue; if (k == 2 && i == 3 && j == 0) continue; int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; worldObj.setBlock(x, y, z, limekiln, 2 + type, 3); TileEntityMultiBlockPart dummyTE; TileEntity te = worldObj.getTileEntity(x, y, z); if (te instanceof TileEntityMultiBlockPart) dummyTE = (TileEntityMultiBlockPart) te; else { if (te != null) { te.invalidate(); worldObj.removeTileEntity(x, y, z); } dummyTE = new TileEntityMultiBlockPart(); worldObj.setTileEntity(x, y, z, dummyTE); } dummyTE.type = type; dummyTE.revertID = partBlocks; dummyTE.setCore(this); worldObj.markBlockForUpdate(x, y, z); } isValidMultiblock = true; }
public void setInside() { if (worldObj.isRemote) return; boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; // hole.setBlock(worldObj, Blocks.warmCO2.blockID, 7); for (int k = 0; k < 4; k++) for (int i = 0; i < 7; i++) for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r >= 3) continue; if (j == 0 && k == 0 && i == 0) continue; int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; Vector3 loc = new Vector3(x, y, z); Block id = loc.getBlock(worldObj); if (!(id == fire) && loc.isAir(worldObj)) if (k == 0) loc.setBlock(worldObj, fire); } }
public boolean checkIfProperlyFormed() { boolean beak = false; { int n = 0; boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; for (int k = -1; k < 5; k++) { for (int i = 0; i < 7; i++) { for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r != 3 && !(k == -1 && r <= 3)) continue; if (j == 0 && k == 0 && (i == 0 || i == 1)) continue; if (k == 2 && i == 3 && j == 0) { hole = new Vector3( xCoord + (axis ? i * dir : j), zCoord + (axis ? j : i * dir), yCoord + k); continue; } int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; Block id = worldObj.getBlock(x, y, z); if (!(id == partBlocks || id == limekiln)) { type = 1; partBlocks = stonebrick; beak = true; break; } n++; } if (beak) break; } if (beak) break; } } if (beak) { int n = 0; boolean axis = (facing.equals(ForgeDirection.EAST) || facing.equals(ForgeDirection.WEST)); int dir = (facing.equals(ForgeDirection.WEST) || facing.equals(ForgeDirection.NORTH)) ? -1 : 1; for (int k = -1; k < 3; k++) for (int i = 0; i < 7; i++) for (int j = -3; j < 4; j++) { int r = Vector3.Int((Math.sqrt(j * j + (i - 3) * (i - 3) + (k + 1) * (k + 1)))); if (r != 3 && !(k == -1 && r <= 3)) continue; if (j == 0 && k == 0 && (i == 0 || i == 1)) continue; if (k == 2 && i == 3 && j == 0) { hole = new Vector3( xCoord + (axis ? i * dir : j), zCoord + (axis ? j : i * dir), yCoord + k); continue; } int x = xCoord + (axis ? i * dir : j); int z = zCoord + (axis ? j : i * dir); int y = yCoord + k; if (x == xCoord && y == yCoord && z == zCoord) continue; Block id = worldObj.getBlock(x, y, z); if (!(id == partBlocks || id == limekiln)) { type = 1; partBlocks = stonebrick; return false; } n++; } } return checkInside(); }