コード例 #1
0
ファイル: SpoutWorld.java プロジェクト: nightslashs/Spout
  protected void getCuboid(
      SpoutChunk[][][] chunks, int x, int y, int z, CuboidBlockMaterialBuffer buffer) {

    lockChunks(chunks);

    try {
      for (int dx = 0; dx < chunks.length; dx++) {
        SpoutChunk[][] subArray1 = chunks[dx];
        for (int dy = 0; dy < subArray1.length; dy++) {
          SpoutChunk[] subArray2 = subArray1[dy];
          for (int dz = 0; dz < subArray2.length; dz++) {
            subArray2[dz].getCuboid(x, y, z, buffer);
          }
        }
      }
    } finally {
      unlockChunks(chunks);
    }
  }
コード例 #2
0
ファイル: SpoutWorld.java プロジェクト: nightslashs/Spout
  protected boolean commitCuboid(
      SpoutChunk[][][] chunks, CuboidBlockMaterialBuffer buffer, Cause<?> cause) {

    Vector3 base = buffer.getBase();
    int x = base.getFloorX();
    int y = base.getFloorY();
    int z = base.getFloorZ();

    lockChunks(chunks);

    try {
      for (int dx = 0; dx < chunks.length; dx++) {
        SpoutChunk[][] subArray1 = chunks[dx];
        for (int dy = 0; dy < subArray1.length; dy++) {
          SpoutChunk[] subArray2 = subArray1[dy];
          for (int dz = 0; dz < subArray2.length; dz++) {
            if (!subArray2[dz].testCuboid(x, y, z, buffer)) {
              return false;
            }
          }
        }
      }

      // set
      for (int dx = 0; dx < chunks.length; dx++) {
        SpoutChunk[][] subArray1 = chunks[dx];
        for (int dy = 0; dy < subArray1.length; dy++) {
          SpoutChunk[] subArray2 = subArray1[dy];
          for (int dz = 0; dz < subArray2.length; dz++) {
            subArray2[dz].setCuboid(x, y, z, buffer, cause);
          }
        }
      }

      return true;
    } finally {
      unlockChunks(chunks);
    }
  }