/**
  * Instantiates a new chunk builder.
  *
  * @param buffer the MutableBlockVolume buffer to attach ore/rocks too
  * @param key the Chunk Coordinate key
  */
 public ChunkBuilder(MutableBlockVolume buffer, TwoPoint key) {
   this.key = key;
   orestructs = null;
   rockstructs = null;
   if (BlockInformation.oreExists(key)) {
     orestructs = new HashSet<Integer>();
     orestructs.addAll(BlockInformation.getBlocks(true, key).getKeys());
     structParse(buffer, BlockInformation.getBlocks(true, key), key);
   }
   if (BlockInformation.rocksExists(key)) {
     rockstructs = new HashSet<Integer>();
     rockstructs.addAll(BlockInformation.getBlocks(false, key).getKeys());
     structParse(buffer, BlockInformation.getBlocks(false, key), key);
   }
 }
 /**
  * Instantiates a new chunk builder.
  *
  * @param chunk the chunk to commit changes to.
  * @param key the chunk String coordinates of the chunk in question
  */
 public ChunkBuilder(Chunk chunk, TwoPoint key) {
   this.key = key;
   orestructs = null;
   rockstructs = null;
   if (BlockInformation.oreExists(key)) {
     orestructs = new HashSet<Integer>();
     orestructs.addAll(BlockInformation.getBlocks(true, key).getKeys());
     structParse(
         chunk.getBlockView(chunk.getBlockMin(), chunk.getBlockMax()),
         BlockInformation.getBlocks(true, key),
         key);
   }
   if (BlockInformation.rocksExists(key)) {
     rockstructs = new HashSet<Integer>();
     rockstructs.addAll(BlockInformation.getBlocks(false, key).getKeys());
     structParse(
         chunk.getBlockView(chunk.getBlockMin(), chunk.getBlockMax()),
         BlockInformation.getBlocks(false, key),
         key);
   }
 }
 public void remove() {
   // TODO Auto-generated method stub
   if (orestructs != null) BlockInformation.removeOre(key, orestructs);
   if (rockstructs != null) BlockInformation.removeRocks(key, rockstructs);
 }