- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(0, 0, 0, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(5, Cube.EDGE_HEIGHT, -10, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(0, 2*Cube.EDGE_HEIGHT, -6, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(-5, 3*Cube.EDGE_HEIGHT, -2, 0, -20, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(Cube.EDGE_WIDTH + 2, 0, 0, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(Cube.EDGE_WIDTH + 2, Cube.EDGE_HEIGHT, 5, 0, 10, 0));
- tower.add(cubes[cubeIndex++] = new Cube(Cube.EDGE_WIDTH + 2, 2*Cube.EDGE_HEIGHT, 2, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(Cube.EDGE_WIDTH + 2, 3*Cube.EDGE_HEIGHT, 0, 0, 30, 0));
- towerList.add(new Tower(tower));
-
- // Back Cubes behind DJ platform (in order of increasing x)
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(50, 0, BASS_DEPTH, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(52, 5+Cube.EDGE_HEIGHT, BASS_DEPTH, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(48, 5+2*Cube.EDGE_HEIGHT, BASS_DEPTH + 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(45, 5+3*Cube.EDGE_HEIGHT, BASS_DEPTH + 15, 0, -20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(48, 5+4*Cube.EDGE_HEIGHT, BASS_DEPTH + 13, 0, 0, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(79, 0, BASS_DEPTH, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(81, 5+Cube.EDGE_HEIGHT, BASS_DEPTH, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(83, 5+2*Cube.EDGE_HEIGHT, BASS_DEPTH + 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(81, 5+3*Cube.EDGE_HEIGHT, BASS_DEPTH + 15, 0, -20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(79, 5+4*Cube.EDGE_HEIGHT, BASS_DEPTH + 13, 0, 0, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(107, 0, BASS_DEPTH, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(111, 5+Cube.EDGE_HEIGHT, BASS_DEPTH, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(113, 5+2*Cube.EDGE_HEIGHT, BASS_DEPTH + 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(110, 5+3*Cube.EDGE_HEIGHT, BASS_DEPTH + 15, 0, -20, 0));
- // tower.add(cubes[cubeIndex++] = new Cube(115, 5+4*Cube.EDGE_HEIGHT, BASS_DEPTH + 13, 0, 0, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(133, 0, BASS_DEPTH, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(131, 5+Cube.EDGE_HEIGHT, BASS_DEPTH, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(133, 5+2*Cube.EDGE_HEIGHT, BASS_DEPTH + 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(135, 5+3*Cube.EDGE_HEIGHT, BASS_DEPTH + 15, 0, -20, 0));
- // tower.add(cubes[cubeIndex++] = new Cube(137, 5+4*Cube.EDGE_HEIGHT, BASS_DEPTH + 13, 0, 0, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube(165, 0, BASS_DEPTH, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(164, 5+Cube.EDGE_HEIGHT, BASS_DEPTH, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(167, 5+2*Cube.EDGE_HEIGHT, BASS_DEPTH + 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube(163, 5+3*Cube.EDGE_HEIGHT, BASS_DEPTH + 15, 0, -20, 0));
- tower.add(cubes[cubeIndex++] = new Cube(168, 5+4*Cube.EDGE_HEIGHT, BASS_DEPTH + 13, 0, 0, 0));
- towerList.add(new Tower(tower));
-
- // front DJ cubes
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube((TRAILER_WIDTH - BASS_WIDTH)/2, BASS_HEIGHT + 0, 10, 0, 0, 0));
- tower.add(cubes[cubeIndex++] = new Cube((TRAILER_WIDTH - BASS_WIDTH)/2, BASS_HEIGHT + Cube.EDGE_HEIGHT, 0, 0, 20, 0));
- towerList.add(new Tower(tower));
-
- tower = new ArrayList<Cube>();
- tower.add(cubes[cubeIndex++] = new Cube((TRAILER_WIDTH - BASS_WIDTH)/2 + Cube.EDGE_HEIGHT + 2, BASS_HEIGHT+Cube.EDGE_HEIGHT, 0, 0, 20, 0));
- tower.add(cubes[cubeIndex++] = new Cube((TRAILER_WIDTH - BASS_WIDTH)/2 + Cube.EDGE_HEIGHT + 3, BASS_HEIGHT, 10, 0, 0, 0));
- towerList.add(new Tower(tower));
+/**
+ * Definitions of tower positions. This is all that should need
+ * to be modified. Distances are measured from the left-most cube.
+ * The first value is the offset moving NE (towards back-right).
+ * The second value is the offset moving NW (negative comes forward-right).
+ */
+static final float[][] TOWER_CONFIG = new float[][] {
+ // x, z, y, #
+ new float[] { 0, 0, RISER, 4 },
+ new float[] { 25, -10, RISER, 4 },
+ new float[] { 50, -22.5, FLOOR, 5 },
+ new float[] { 17.25, -35.5, FLOOR, 6 },
+ new float[] { 43.25, -51.5, RISER, 6 },
+ new float[] { 69.25, -56, FLOOR, 6 },
+ new float[] { 12.75, -62.5, RISER, 4 },
+ new float[] { 38.75, -78.5, FLOOR, 5 },
+ new float[] { 65.75, -83, RISER, 5 },