summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/rectangles/engine/rooms
diff options
context:
space:
mode:
authorryderr <r@okfoc.us>2014-10-16 10:43:17 -0400
committerryderr <r@okfoc.us>2014-10-16 10:43:17 -0400
commit5f91a568db7f69489851c373e54cf911d29e3054 (patch)
tree3b92d3a0782353fefa8967c78762d324913df730 /public/assets/javascripts/rectangles/engine/rooms
parent20f37d08394df097db45e0092e4420f31b5be161 (diff)
parent1a15b32d8cc8fcf27861f94151ca63eb6d8736c2 (diff)
merge
Diffstat (limited to 'public/assets/javascripts/rectangles/engine/rooms')
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_walls.js57
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/builder.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/mover.js11
3 files changed, 62 insertions, 8 deletions
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_walls.js b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
index 119a659..fe5913d 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_walls.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
@@ -135,11 +135,65 @@
}
base.luminance = function(rgb){
- rgb = rgb || Walls.colors.wall
+ rgb = rgb || Walls.colors.ceiling
var rgb_max = Math.max.apply(0, rgb)
var rgb_min = Math.min.apply(255, rgb)
return (rgb_max + rgb_min ) / 2
}
+
+ base.setBodyColor = function(){
+ $("#header").toggleClass("black", Walls.luminance() < 100)
+ $("body").css("background-color", rgb_string( Walls.colors.wall ))
+ }
+ base.clearBodyColor = function(){
+ $("#header").removeClass("black")
+ $("body").css("background-color", "transparent")
+ }
+
+ base.setWallpaper = {
+ wall: function(background){
+ var img = new Image ()
+ img.onload = function(){
+ Walls.list.forEach(function(wall){
+ wall.wallpaper(background, img)
+ })
+ }.bind(this)
+ img.src = background.src
+ img.complete && img.onload()
+ },
+ floor: function(background){
+ Walls.floors.forEach(function(floor){
+ if (floor.ceiling) return
+ floor.wallpaper(background)
+ })
+ },
+ ceiling: function(background){
+ Walls.floors.forEach(function(floor){
+ if (! floor.ceiling) return
+ floor.wallpaper(background)
+ })
+ },
+ }
+
+ base.clearWallpaper = {
+ wall: function(){
+ Walls.list.forEach(function(wall){
+ wall.wallpaper("none")
+ })
+ },
+ floor: function(){
+ Walls.floors.forEach(function(floor){
+ if (floor.ceiling) return
+ wall.wallpaper("none")
+ })
+ },
+ ceiling: function(){
+ Walls.floors.forEach(function(floor){
+ if (! floor.ceiling) return
+ wall.wallpaper("none")
+ })
+ },
+ }
base.setColor = {
@@ -181,7 +235,6 @@
room.setCeilingColor(rgbColor)
})
},
-
}
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/builder.js b/public/assets/javascripts/rectangles/engine/rooms/builder.js
index 33333fb..c95734b 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/builder.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/builder.js
@@ -280,7 +280,7 @@
return el
}
this.make_wall = function (klass) {
- // klass += ".backface-hidden"
+ klass += ".backface-hidden"
var el = new MX.Object3D(".face" + (klass || ""))
el.width = el.height = el.scaleX = el.scaleY = el.scaleZ = 1
el.z = el.y = el.x = 0
diff --git a/public/assets/javascripts/rectangles/engine/rooms/mover.js b/public/assets/javascripts/rectangles/engine/rooms/mover.js
index a2d2223..fae2ce6 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/mover.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/mover.js
@@ -11,7 +11,8 @@ Rooms.mover = new function(){
base.bind = function(){
app.on("move", base.update)
- keys.on("backslash", function(){
+ keys.on("backslash", function(e){
+ if ( ! (e.ctrlKey || e.metaKey) ) return
base.noclip = ! base.noclip
base.room = null
app.movements.gravity( ! base.noclip )
@@ -43,8 +44,7 @@ Rooms.mover = new function(){
// in this case, we appear to have left the room..
// $(".face.active").removeClass("active")
- $("#header").removeClass("black")
- $("body").css("background-color", "transparent")
+ Walls.clearBodyColor()
base.room = null
}
@@ -60,8 +60,9 @@ Rooms.mover = new function(){
// did we actually enter a room?
if (intersects.length) {
base.room = intersects[0]
- $("#header").toggleClass("black", Walls.luminance() < 100)
- $("body").css("background-color", rgb_string( Walls.colors.wall ))
+ if (! base.noclip) {
+ Walls.setBodyColor()
+ }
app.tube("change-room", { room: base.room })
}