diff options
Diffstat (limited to 'src/cube.ts')
| -rw-r--r-- | src/cube.ts | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/src/cube.ts b/src/cube.ts index bcb2988..f80f07e 100644 --- a/src/cube.ts +++ b/src/cube.ts @@ -1,15 +1,41 @@ module Omni { - export class Cube extends Physijs.Scene implements Tickable{ - private elements:Block[]; + export class Cube extends Physijs.Scene implements Tickable { + private blocks:Block[]; private puzzles:Puzzle[]; - constructor() { + static SIZE:number = 4; + + constructor(private loader:BlockLoader) { super(); - let block = new LeverBlock(); - } + init(level?:number):void { + //cube size, 4*4*4 + //generate corners first + let half = Cube.SIZE / 2; + let corners = [ + new THREE.Vector3(-1, -1, -1), + new THREE.Vector3(1, -1, -1), + new THREE.Vector3(-1, -1, 1), + new THREE.Vector3(1, -1, 1), + new THREE.Vector3(-1, 1, -1), + new THREE.Vector3(1, 1, -1), + new THREE.Vector3(-1, 1, 1), + new THREE.Vector3(1, 1, 1) + ]; + for (let corner of corners) { + let vertex = corner.clone().multiplyScalar(half); + let block = new PlainBlock(this.loader); + block.setPosition(vertex.add(corner.clone().multiplyScalar(0.5))); + this.add(block.getObject()); + this.blocks.push(block); + } + + //then edges + //then fill in the rest + + } tick(delta:number):void { this.simulate(delta); |
