summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-10-13 11:43:56 -0400
committerJules Laplace <jules@okfoc.us>2014-10-13 11:44:40 -0400
commitdbaf1b362e775f0923e3910d06de510369811802 (patch)
treef7462742dfb3c3e3237b823eb899dfcd91231b55
parentf73f5c517d08581d8d1c687a42e9ef9e5598662a (diff)
click background to deselect room in blueprint editor
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_editor.js11
-rw-r--r--public/assets/javascripts/ui/builder/BuilderInfo.js27
-rw-r--r--views/controls/builder/info.ejs11
3 files changed, 44 insertions, 5 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
index 3c3347b..6dc6c90 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
@@ -167,12 +167,11 @@ Map.UI.Editor = function(map){
redo: room.copy()
})
+ Rooms.rebuild()
app.tube("builder-pick-room", room)
}
}
-
if (base.resizing || base.dragging) {
-
var oldState = base.dragging.copy()
if (base.resizing) {
@@ -187,7 +186,15 @@ Map.UI.Editor = function(map){
undo: oldState,
redo: base.dragging.copy()
})
+ Rooms.rebuild()
}
+
+ var intersects = Rooms.filter(function(r){
+ return r.focused = r.rect.contains(cursor.x.a, cursor.y.a)
+ })
+ if (! intersects.length) {
+ app.tube("builder-pick-nothing")
+ }
base.creating = base.dragging = base.resizing = false
}
diff --git a/public/assets/javascripts/ui/builder/BuilderInfo.js b/public/assets/javascripts/ui/builder/BuilderInfo.js
index 0bf2338..196eca6 100644
--- a/public/assets/javascripts/ui/builder/BuilderInfo.js
+++ b/public/assets/javascripts/ui/builder/BuilderInfo.js
@@ -13,6 +13,7 @@ var BuilderInfo = View.extend({
"change [name=units]": 'changeUnits',
"change [name=resolution]": 'changeResolution',
"change [name=viewHeight]": 'changeViewHeight',
+ "click [data-role=destroy-room]": 'destroy',
},
initialize: function(opt){
@@ -25,8 +26,11 @@ var BuilderInfo = View.extend({
this.$units = this.$("[name=units]")
this.$viewHeight = this.$("[name=viewHeight]")
this.$unitName = this.$(".unitName")
+ this.$noSelection = this.$(".no-selection")
+ this.$settings = this.$(".setting")
app.on("builder-pick-room", this.pick.bind(this))
- app.on("builder-destroy-room", this.destroy.bind(this))
+ app.on("builder-destroy-room", this.hide.bind(this))
+ app.on("builder-pick-nothing", this.deselect.bind(this))
},
load: function(data){
@@ -36,6 +40,8 @@ var BuilderInfo = View.extend({
},
toggle: function(state){
+ this.$settings.toggle( !! this.room )
+ this.$noSelection.toggle( ! this.room )
this.$el.toggleClass("active", state)
},
@@ -43,7 +49,8 @@ var BuilderInfo = View.extend({
this.toggle(true)
},
- hide: function(){
+ hide: function(){
+ this.room = null
this.toggle(false)
},
@@ -58,8 +65,22 @@ var BuilderInfo = View.extend({
this.$y.unitVal( room.rect.y.a )
this.show()
},
+
+ deselect: function(){
+ this.room = null
+ this.toggle(true)
+ },
+
+ destroy: function(){
+ UndoStack.push({
+ type: "destroy-room",
+ undo: this.room.copy(),
+ redo: { id: this.room.id },
+ })
+
+ Rooms.remove(this.room)
+ app.tube("builder-destroy-room", this.room)
- destroy: function(room){
this.room = null
this.hide()
},
diff --git a/views/controls/builder/info.ejs b/views/controls/builder/info.ejs
index 7ef0b6a..3c5d4b7 100644
--- a/views/controls/builder/info.ejs
+++ b/views/controls/builder/info.ejs
@@ -1,4 +1,11 @@
<div class="vvbox settings info" id="builderInfo">
+ <h4>Map Editor</h4>
+
+ <div class="no-selection">
+ Click a room to select it, or click and drag to make a new room.
+ </div>
+
+
<div class="setting number">
<label for="room-width">width</label>
<input type="text" class="units" name="width" id="room-width">
@@ -32,4 +39,8 @@
<input type="text" class="units" name="viewHeight" id="viewHeight">
</div>
+ <div class="setting">
+ <a href="#" class="warn btn" data-role="destroy-room">delete this room</a>
+ </div>
+
</div>