summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-29 18:25:12 -0400
committerJules Laplace <jules@okfoc.us>2014-10-29 18:25:12 -0400
commitde6fa5bf0e7f0a55341d05f5a5b1dfb19330aeb0 (patch)
tree6706ee7c45cd5bca4222bfaa0f42afb940110761
parent503c1eb313d01d3a73fac1e31b774749893b55d4 (diff)
stub in fixes to mover
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/mover.js38
-rw-r--r--public/assets/javascripts/rectangles/models/room.js6
-rw-r--r--public/assets/javascripts/ui/reader/MediaPlayer.js2
-rw-r--r--server/lib/views/index.js6
4 files changed, 44 insertions, 8 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/mover.js b/public/assets/javascripts/rectangles/engine/rooms/mover.js
index fae2ce6..121ecec 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/mover.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/mover.js
@@ -34,7 +34,43 @@ Rooms.mover = new function(){
}
// check if we've breached one of the walls.. clamp position if so
- var collision = base.room.collidesDisc(pos.x, pos.z, radius)
+ var collision = base.room.collidesDisc(cam, pos, radius)
+
+/*
+ var dz = new vec2( cam.z, pos.z )
+ dz.normalize()
+
+ var dx = new vec2( cam.x, pos.x )
+ dx.normalize()
+
+ Walls.list.forEach(function(wall){
+ switch (wall.side) {
+ case FRONT:
+ break
+ case BACK:
+ break
+ case LEFT:
+ if (cam.x >= wall.edge + radius && wall.edge + radius >= pos.x && (wall.vec.intersects(dz) ) {
+ // intersects the wall.. next check if it intersects any of the surface frames
+ wall.surface.faces.some(function(face, i){
+ // if we can pass through the wall at this point, we do not need to clamp
+ if (face.y.a === 0 && face.x.intersects(dz)) {
+ dz.a = pos.z = face.x.clamp(pos.z)
+ dz.b = cam.z
+ dz.normalize()
+ return true
+ }
+ })
+ }
+ break
+ case RIGHT:
+ if (cam.x <= wall.edge - radius && wall.edge - radius <= pos.x && (wall.vec.contains(cam.z) || wall.vec.contains(pos.z)) ) {
+ // intersects
+ }
+ break
+ }
+ })
+*/
if (collision && ! base.noclip) {
cam.x = (collision & LEFT_RIGHT) ? base.room.rect.x.clampDisc(pos.x, radius) : pos.x
diff --git a/public/assets/javascripts/rectangles/models/room.js b/public/assets/javascripts/rectangles/models/room.js
index b0344a1..26bf055 100644
--- a/public/assets/javascripts/rectangles/models/room.js
+++ b/public/assets/javascripts/rectangles/models/room.js
@@ -122,7 +122,8 @@
return collision
}
- Room.prototype.collidesDisc = function(x,y,radius){
+ Room.prototype.collidesDisc = function(src, dest, radius){
+ var x = dest.x, y = dest.z
var collision = 0, wall_collision, contains_x, contains_y
this.regions.forEach(function(r){
if (! r.sides) return
@@ -152,9 +153,6 @@
if (contains_y) {
collision |= wall_collision & LEFT_RIGHT
}
-// if (bitcount(wall_collision) > 1) {
-// collision |= wall_collision
-// }
})
return collision
}
diff --git a/public/assets/javascripts/ui/reader/MediaPlayer.js b/public/assets/javascripts/ui/reader/MediaPlayer.js
index 7f73e1b..e40c6ff 100644
--- a/public/assets/javascripts/ui/reader/MediaPlayer.js
+++ b/public/assets/javascripts/ui/reader/MediaPlayer.js
@@ -44,7 +44,7 @@ var MediaPlayer = FormView.extend({
this.unbind()
}
if (media.type == "image") {
- if ((! media.title || ! media.title.length) && (! media.description || ! media.description.length) || (media.title == filenameFromUrl(media.url)) ) {
+ if ( ! media.description && (! media.title || media.title == filenameFromUrl(media.url)) ) {
this.hide()
return
}
diff --git a/server/lib/views/index.js b/server/lib/views/index.js
index 0b5a1fe..7ffadb9 100644
--- a/server/lib/views/index.js
+++ b/server/lib/views/index.js
@@ -38,10 +38,12 @@ var views = module.exports = {
}
else if (req.isOwner || req.isCollaborator || req.isStaff) {
res.locals.opt.editing = true
- res.render('editor')
+ res.render('editor', {
+ ogUrl: "http://vvalls.com/project/" + req.project.slug + "/",
+ })
}
else {
- views.reader(req, res)
+ res.redirect("/project/" + req.project.slug + "/")
}
},