summaryrefslogtreecommitdiff
path: root/src/cube.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/cube.ts')
-rw-r--r--src/cube.ts36
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);