// Path: src/main/java/two/davincing/utils/Debug.java
// public class Debug {
// 
//   public static <T> void log(T... thing) {
//     StringBuilder sb = new StringBuilder();
//     for (T i : thing) {
//       sb.append(i + ", ");
//     }
//     System.err.println(sb.toString());
//   }
// 
// }


import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import two.davincing.utils.Debug;

    r.apply(x, y, z);
    for (int l = 0; l < layers.length; l++) {
      if ((index & (1 << l)) > 0) {
        layers[l][r.x * 8 + r.y] |= (1 << r.z);
      } else {
        layers[l][r.x * 8 + r.y] &= ~(1 << r.z);
      }
    }
  }

  public static boolean contains(int x, int y, int z) {
    return x >= 0 && y >= 0 && z >= 0 && x < 8 && y < 8 && z < 8;
  }

  private boolean check() {
    if (block_ids == null) {
      return false;
    }
    if (block_metas == null) {
      return false;
    }
    if (layers == null) {
      return false;
    }
    if (r.r == null) {
      return false;
    }
    for (int i = 0; i < layers.length; i++) {
      if (layers[i] == null) {
// Path: src/main/java/two/davincing/utils/Debug.java
// public class Debug {
// 
//   public static <T> void log(T... thing) {
//     StringBuilder sb = new StringBuilder();
//     for (T i : thing) {
//       sb.append(i + ", ");
//     }
//     System.err.println(sb.toString());
//   }
// 
// }


// Path: src/main/java/two/davincing/sculpture/Sculpture.java
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import two.davincing.utils.Debug;


    r.apply(x, y, z);
    for (int l = 0; l < layers.length; l++) {
      if ((index & (1 << l)) > 0) {
        layers[l][r.x * 8 + r.y] |= (1 << r.z);
      } else {
        layers[l][r.x * 8 + r.y] &= ~(1 << r.z);
      }
    }
  }

  public static boolean contains(int x, int y, int z) {
    return x >= 0 && y >= 0 && z >= 0 && x < 8 && y < 8 && z < 8;
  }

  private boolean check() {
    if (block_ids == null) {
      return false;
    }
    if (block_metas == null) {
      return false;
    }
    if (layers == null) {
      return false;
    }
    if (r.r == null) {
      return false;
    }
    for (int i = 0; i < layers.length; i++) {
      if (layers[i] == null) {
        Debug.log("layer " + i + " is null!");