summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-10 20:54:14 -0400
committerJules Laplace <jules@okfoc.us>2014-10-10 20:54:14 -0400
commit4263bc016e828f7407b446e27bdf64d898758627 (patch)
treef09ccb8000973ede389c2766c2ae680485126526
parent86153d1221e38615d0a7dea8a8029a184fb25ece (diff)
refactor layout-parsing calls into Rooms.rebuild
-rw-r--r--public/assets/javascripts/rectangles/_env.js5
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_editor.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js19
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_walls.js12
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/builder.js5
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/clipper.js1
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/undo.js12
-rw-r--r--public/assets/javascripts/ui/builder/BuilderInfo.js10
-rw-r--r--public/assets/javascripts/ui/builder/BuilderView.js5
-rw-r--r--public/assets/javascripts/ui/editor/EditorSettings.js7
10 files changed, 43 insertions, 35 deletions
diff --git a/public/assets/javascripts/rectangles/_env.js b/public/assets/javascripts/rectangles/_env.js
index 4b14a21..ecde3ca 100644
--- a/public/assets/javascripts/rectangles/_env.js
+++ b/public/assets/javascripts/rectangles/_env.js
@@ -17,14 +17,15 @@ environment.init = function(){
scene.camera.radius = 20
}
- app.movements.gravity(true)
-
Rooms.init()
+ Walls.init()
Scenery.init()
scene.update()
environment.update()
+ app.movements.gravity(true)
+
var minimap_el = document.querySelector("#minimap .el")
if (minimap_el) {
window.minimap = new Map ({
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
index 02218ed..3c3347b 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
@@ -213,7 +213,7 @@ Map.UI.Editor = function(map){
undo: wheelState,
redo: intersects[0].copy()
})
- Rooms.clipper.update()
+ Rooms.rebuild()
wheelState = null
}, 500)
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 3603f0c..b901a25 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -59,18 +59,19 @@
height: 500
})
base.add(room)
+ Rooms.rebuild()
return room
}
base.remove = function(room){
delete base.list[room.id]
- Rooms.clipper.update()
+ Rooms.rebuild()
}
base.removeAll = function(){
base.list = {}
base.regions = []
- Rooms.clipper.update()
+ Rooms.rebuild()
}
base.count = function(){
@@ -88,6 +89,16 @@
base.values = function(){
return _.values(base.list)
}
+
+ base.rebuild = function(walls_data){
+ walls_data = walls_data || Walls.serialize()
+ Rooms.clipper.update()
+ Rooms.builder.rebuild()
+ Rooms.grouper.build()
+ Walls.paint()
+ Walls.deserialize(walls_data)
+ app.tube("rooms-built")
+ }
base.serialize = function(){
var rooms = base.map(function(room){
@@ -96,7 +107,7 @@
return rooms
}
- base.deserialize = function(rooms_data){
+ base.deserialize = function(rooms_data, walls_data){
rooms_data.forEach(function(data){
if (! data || ! data.rect) return
var rect = new Rect(data.rect.x[0], data.rect.y[0], data.rect.x[1], data.rect.y[1])
@@ -107,7 +118,7 @@
})
base.add(room)
})
- Rooms.clipper.update()
+ Rooms.rebuild(walls_data)
}
base.report = function(){
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_walls.js b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
index 7ff472d..80d30c6 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_walls.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_walls.js
@@ -38,6 +38,15 @@
base.floors = []
base.lookup = {}
base.colors = {}
+
+ base.init = function(){
+ base.colors = {
+ wall: app.defaults.colors.wall.slice(),
+ outline: app.defaults.colors.outline.slice(),
+ floor: app.defaults.colors.floor.slice(),
+ ceiling: app.defaults.colors.ceiling.slice(),
+ }
+ }
base.first = function(){
for (var i in base.list) {
@@ -90,7 +99,7 @@
base.values = function(){
return _.values(base.lookup)
}
-
+
base.serialize = function(){
var data = []
base.forEach(function(wall){
@@ -118,6 +127,7 @@
var ceilingColor = rgb_string(Walls.colors.ceiling)
Walls.list.forEach(function(wall){
wall.outline(wallColor, outlineColor)
+ // TODO: SET WALLPAPER HERE
})
Rooms.forEach(function(room){
room.setFloorColor(floorColor)
diff --git a/public/assets/javascripts/rectangles/engine/rooms/builder.js b/public/assets/javascripts/rectangles/engine/rooms/builder.js
index 6a89158..4619eb1 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/builder.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/builder.js
@@ -32,19 +32,16 @@
var els = []
base.init = function(){
- base.bind()
+ // base.bind()
}
base.bind = function(){
- app.on("clip", base.rebuild.bind(base))
}
base.rebuild = function(){
if (window.scene) {
base.clear()
base.build()
- Rooms.grouper.build()
- app.tube("rooms-built")
}
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/clipper.js b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
index 0382758..df83cc8 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/clipper.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/clipper.js
@@ -38,7 +38,6 @@
base.update = function(){
base.solve_rects()
- app.tube("clip")
}
var regions
diff --git a/public/assets/javascripts/rectangles/engine/scenery/undo.js b/public/assets/javascripts/rectangles/engine/scenery/undo.js
index 57a0886..bee8c49 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/undo.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/undo.js
@@ -69,11 +69,11 @@
type: "create-room",
undo: function(room){
Rooms.remove(room)
- Rooms.clipper.update()
+ Rooms.rebuild()
},
redo: function(room){
Rooms.add(new Room(room))
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
},
@@ -83,14 +83,14 @@
var room = Rooms.list[state.id]
room.rect.assign( state.rect )
room.height = state.height
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
redo: function(state){
var room = Rooms.list[state.id]
room.rect.assign( state.rect )
room.height = state.height
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
},
@@ -98,12 +98,12 @@
type: "destroy-room",
undo: function(room){
Rooms.add(new Room(room))
- Rooms.clipper.update()
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
},
redo: function(room){
Rooms.remove(room)
- Rooms.clipper.update()
+ Rooms.rebuild()
},
},
diff --git a/public/assets/javascripts/ui/builder/BuilderInfo.js b/public/assets/javascripts/ui/builder/BuilderInfo.js
index f7753a3..0bf2338 100644
--- a/public/assets/javascripts/ui/builder/BuilderInfo.js
+++ b/public/assets/javascripts/ui/builder/BuilderInfo.js
@@ -67,27 +67,27 @@ var BuilderInfo = View.extend({
changeWidth: function(e){
e.stopPropagation()
this.room.rect.x.setLength( this.$width.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeDepth: function(e){
e.stopPropagation()
this.room.rect.y.setLength( this.$depth.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeHeight: function(e){
e.stopPropagation()
this.room.height = this.$height.unitVal()
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeX: function(e){
e.stopPropagation()
this.room.rect.x.setPosition( this.$x.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeY: function(e){
e.stopPropagation()
this.room.rect.y.setPosition( this.$y.unitVal() )
- Rooms.clipper.update()
+ Rooms.rebuild()
},
changeUnits: function(){
app.units = this.$units.val()
diff --git a/public/assets/javascripts/ui/builder/BuilderView.js b/public/assets/javascripts/ui/builder/BuilderView.js
index 81dce52..a89111f 100644
--- a/public/assets/javascripts/ui/builder/BuilderView.js
+++ b/public/assets/javascripts/ui/builder/BuilderView.js
@@ -12,11 +12,6 @@ var BuilderView = View.extend({
this.toolbar = new BuilderToolbar ({ parent: this })
this.settings = new BuilderSettings ({ parent: this })
this.lightControl = new LightControl ({ parent: this })
-
- app.on("rooms-built", function(){
- Walls.paint()
- })
-
},
load: function(name){
diff --git a/public/assets/javascripts/ui/editor/EditorSettings.js b/public/assets/javascripts/ui/editor/EditorSettings.js
index 45a2e43..89040e1 100644
--- a/public/assets/javascripts/ui/editor/EditorSettings.js
+++ b/public/assets/javascripts/ui/editor/EditorSettings.js
@@ -32,8 +32,7 @@ var EditorSettings = FormView.extend({
this.action = data.isNew ? this.createAction : this.updateAction
this.parent.data = data
- data.rooms && Rooms.deserialize(data.rooms)
- data.walls && Walls.deserialize(data.walls)
+ data.rooms && Rooms.deserialize(data.rooms, data.walls)
data.startPosition && scene.camera.move(data.startPosition)
if (data.colors && data.colors.wall) {
@@ -66,10 +65,6 @@ var EditorSettings = FormView.extend({
data.media && Scenery.deserialize(data.media)
}
-
- app.on("rooms-built", function(){
- Walls.paint()
- })
},
showCollaborators: function(e){