diff options
Diffstat (limited to 'assets/javascripts/rectangles/engine/scenery.js')
| -rw-r--r-- | assets/javascripts/rectangles/engine/scenery.js | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/assets/javascripts/rectangles/engine/scenery.js b/assets/javascripts/rectangles/engine/scenery.js deleted file mode 100644 index 1301949..0000000 --- a/assets/javascripts/rectangles/engine/scenery.js +++ /dev/null @@ -1,177 +0,0 @@ -var wall_rotation = {} -wall_rotation[FRONT] = PI -wall_rotation[BACK] = 0 -wall_rotation[LEFT] = HALF_PI -wall_rotation[RIGHT] = -HALF_PI - -var Scenery = new function(){ - - var base = this; - - base.mouse = new mouse ({ use_offset: false }) - - base.init = function(){ - var urls = [ - "http://okfocus.s3.amazonaws.com/office/ducks/duck1.jpg", - "http://okfocus.s3.amazonaws.com/office/ducks/duck2.jpg", - "http://okfocus.s3.amazonaws.com/office/ducks/duck3.jpg", - "http://okfocus.s3.amazonaws.com/office/ducks/duck4.jpg", - "http://okfocus.s3.amazonaws.com/office/ducks/duck5.jpg", - ] - var loader = new Loader(function(){ - base.load(loader.images) - }) - loader.preloadImages(urls) - } - - base.load = function(images){ - images.forEach(function(img){ - img.width = 300 - img.height = ~~(300 * img.naturalHeight/img.naturalWidth) - }) - - Rooms.forEach(function(room){ - room.walls.forEach(function(wall){ - new_image(wall, choice(images)) - }) - }) - } - - function new_image (wall, img) { - var x, z - - if (! wall.fits(img)) return - - var mx_img = new MX.Image({ - src: img.src, - x: 0, - y: Rooms.list[wall.room].height/2 - img.height/2 - 20, - z: 0, - scale: 300/img.naturalWidth, - rotationY: 0, - backface: false, - }) - - var center = wall.center_for(img, null) - mx_img.move({ - x: center.a, - z: center.b, - rotationY: wall_rotation[ wall.side ] - }) - scene.add(mx_img) - - // https://s3.amazonaws.com/luckyplop/f5b2c20e602cdfc86383910f294dcf23d91fa956.png - - var x = 0, y = 0, z = 0, bounds - - // should be proportional to distance from wall - var cursor_amp = 1.5 - var dragging = false - - base.mouse.bind_el(mx_img.el) - base.mouse.tube.on("down", function(e, cursor){ - if (e.target != mx_img.el) return; - dragging = true - x = mx_img.x - y = mx_img.y - z = mx_img.z - bounds = wall.bounds_for(img) - document.body.classList.add("dragging") - }) - base.mouse.tube.on("enter", function(e, new_wall, cursor){ - 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) - - x = center.a - z = center.b - - var wall_group = wall.side | new_wall.side - - if (wall.side !== new_wall.side && wall_group !== FRONT_BACK && wall_group !== LEFT_RIGHT) { - switch (wall.side) { - case FRONT: - z = bounds.x.a - break - case BACK: - z = bounds.x.b - break - case LEFT: - x = bounds.x.a - break - case RIGHT: - x = bounds.x.b - break - } - } - - cursor.x.a = cursor.x.b - - mx_img.move({ - x: x, - z: z, - rotationY: wall_rotation[ new_wall.side ] - }) - - wall = new_wall - }) - base.mouse.tube.on("drag", function(e, cursor){ - if (! dragging) return - - mx_img.y = bounds.y.clamp( y - cursor.y.magnitude()*cursor_amp ) - switch (wall.side) { - case FRONT: - mx_img.x = bounds.x.clamp( x - cursor.x.magnitude()*cursor_amp ) - break - case BACK: - mx_img.x = bounds.x.clamp( x + cursor.x.magnitude()*cursor_amp ) - break - case LEFT: - mx_img.z = bounds.x.clamp( z + cursor.x.magnitude()*cursor_amp ) - break - case RIGHT: - mx_img.z = bounds.x.clamp( z - cursor.x.magnitude()*cursor_amp ) - break - } - }) - base.mouse.tube.on("up", function(e, cursor){ - dragging = false - document.body.classList.remove("dragging") - }) - } - - function side_direction (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 - -} |
