summaryrefslogtreecommitdiff
path: root/src/cube.ts
diff options
context:
space:
mode:
authorJ08nY2016-04-29 00:09:43 +0200
committerJ08nY2016-04-29 00:09:43 +0200
commit7caff3e0edcf8982ec716143ed030b2790061b39 (patch)
tree16673b30ff5fcb35c53bdcbeeea0cf0fa9b22d25 /src/cube.ts
parente243829840896b29c2508d3984b229adc3074edc (diff)
downloadomniplex-master.tar.gz
omniplex-master.tar.zst
omniplex-master.zip
pointerlock workHEADmaster
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);