summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/engine/scenery.js
diff options
context:
space:
mode:
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
}