summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/engine/scenery.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-04-29 18:23:03 -0400
committerJules Laplace <jules@okfoc.us>2014-04-29 18:23:03 -0400
commit13866758035f1f2f9f1d599b95c2d1ceef76e47f (patch)
tree30dabe9f0d101db0016f983c4f07a3b8bb1d866e /assets/javascripts/rectangles/engine/scenery.js
parent277afee0a66822113de9db44c8a60256b5c8491a (diff)
closer to a solution
Diffstat (limited to 'assets/javascripts/rectangles/engine/scenery.js')
-rw-r--r--assets/javascripts/rectangles/engine/scenery.js61
1 files changed, 48 insertions, 13 deletions
diff --git a/assets/javascripts/rectangles/engine/scenery.js b/assets/javascripts/rectangles/engine/scenery.js
index e25805b..6aba7f4 100644
--- a/assets/javascripts/rectangles/engine/scenery.js
+++ b/assets/javascripts/rectangles/engine/scenery.js
@@ -82,25 +82,31 @@ var scenery = new function(){
if (! dragging) return
if (new_wall.uid == wall.uid) return
if (! new_wall.fits(img)) return
+
bounds = new_wall.bounds_for(img)
center = new_wall.center_for(img)
-// if (this.side & FRONT_BACK) {
-// major_axis = this.rect.x
-// minor_axis = this.rect.y
-// }
-// else {
-// major_axis = this.rect.y
-// minor_axis = this.rect.x
-// }
x = center.a
- z = center.b
+ z = center.b
- cursor.a = cursor.b
+ var direction = compare_sides(bounds)
+
+// switch (direction) {
+// case FRONT:
+// break
+// case BACK:
+// break
+// case LEFT:
+// break
+// case RIGHT:
+// break
+// }
+
+ cursor.x.a = cursor.x.b
mx_img.move({
- x: center.a,
- z: center.b,
+ x: x,
+ z: z,
rotationY: wall_rotation[ new_wall.side ]
})
@@ -130,7 +136,36 @@ var scenery = new function(){
document.body.classList.remove("dragging")
})
}
-
+
+ function compare_sides (a, b) {
+ if (a === b) return 0
+ if ((a | b) === FRONT_BACK) return 0
+ if ((a | b) === LEFT_RIGHT) return 0
+ switch (a) {
+ case FRONT:
+ return b & LEFT ? -1 : 1
+ case BACK:
+ return b & RIGHT ? -1 : 1
+ case LEFT:
+ return b & FRONT ? -1 : 1
+ case RIGHT:
+ return b & BACK ? -1 : 1
+ }
+ }
+
+// console.log([
+// compare_sides( LEFT, RIGHT ),
+// compare_sides( FRONT, BACK ),
+// compare_sides( FRONT, LEFT ),
+// compare_sides( FRONT, RIGHT ),
+// compare_sides( BACK, RIGHT ),
+// compare_sides( BACK, LEFT ),
+// compare_sides( LEFT, FRONT ),
+// compare_sides( LEFT, BACK ),
+// compare_sides( RIGHT, BACK ),
+// compare_sides( RIGHT, FRONT ),
+// ].join("\n"))
+
return base
}