function prism(block, w, d) {
  var stairEquiv = STAIRBLOCKS[block];
  if (stairEquiv) {
    this.fwd()
      .prism(stairEquiv, w, d - 2)
      .back()
      .stairs(block, w, d / 2)
      .fwd(d - 1)
      .right(w - 1)
      .turn(2)
      .stairs(block, w, d / 2)
      .turn(2)
      .left(w - 1)
      .back(d - 1);
  } else {
    var c = 0;
    var d2 = d;
    while (d2 >= 1) {
      this.cuboid(block, w, 1, d2);
      d2 -= 2;
      this.fwd().up();
      c++;
    }
    this.down(c).back(c);
  }
  return this;
}
*********************************************************************
### Drone.prism() method

Creates a prism. This is useful for roofs on houses.

#### Parameters
block - the block id - e.g. 6 for an oak sapling or '6:2' for a birch sapling. 
   Alternatively you can use any one of the `blocks` values e.g. `blocks.sapling.birch`
width - the width of the prism
length - the length of the prism (will be 2 time its height)

#### Example

    prism(blocks.oak,3,12);

![prism example](img/prismex1.png)

### Drone.prism0() method

A variation on `prism` which hollows out the inside of the prism. It
uses the same parameters as `prism`.
*