summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-10-14 10:45:25 -0400
committerJulie Lala <jules@okfoc.us>2014-10-14 10:45:25 -0400
commit3cb1983858c1314661592fa78c814eed44acb1b7 (patch)
treeac68510745ca98500f0bb427ea3c5d1abafb2d2e
parent40c85ef5f19139ae5b2cf3e3c0f4878f7acaeae4 (diff)
parent10a98d58fcba585dc13d251497c6028d04de0031 (diff)
Merge branch 'master' of github.com:okfocus/vvalls
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_editor.js11
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/randomize.js4
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/image.js2
-rw-r--r--public/assets/javascripts/rectangles/engine/scenery/types/video.js2
-rw-r--r--public/assets/javascripts/rectangles/util/constants.js3
-rw-r--r--public/assets/javascripts/ui/builder/BuilderInfo.js27
-rw-r--r--views/controls/builder/info.ejs11
7 files changed, 50 insertions, 10 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
index 8f4f594..60c745e 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
@@ -169,12 +169,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) {
@@ -189,7 +188,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/rectangles/engine/scenery/randomize.js b/public/assets/javascripts/rectangles/engine/scenery/randomize.js
index 4f1144a..82b6bf9 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/randomize.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/randomize.js
@@ -10,11 +10,11 @@ Scenery.randomize = function (media_data) {
var media_list = media_data.map(function(media){
var width, height
if (media.width > media.height) {
- width = Math.min(300, media.width)
+ width = Math.min(DEFAULT_PICTURE_WIDTH, media.width)
height = media.height/media.width * width
}
else {
- height = Math.min(300, media.height)
+ height = Math.min(DEFAULT_PICTURE_WIDTH, media.height)
width = media.width/media.height * height
}
return {
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/image.js b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
index bed847b..10fc917 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/image.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/image.js
@@ -7,7 +7,7 @@ Scenery.types.image = Scenery.types.base.extend(function(base){
init: function(opt){
- opt.scale = opt.scale || (opt.data && opt.data.scale) || 300 / max(300, opt.media.width)
+ opt.scale = opt.scale || (opt.data && opt.data.scale) || DEFAULT_PICTURE_WIDTH / max(DEFAULT_PICTURE_WIDTH, opt.media.width)
base.init.call(this, opt)
diff --git a/public/assets/javascripts/rectangles/engine/scenery/types/video.js b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
index b723f56..a669a90 100644
--- a/public/assets/javascripts/rectangles/engine/scenery/types/video.js
+++ b/public/assets/javascripts/rectangles/engine/scenery/types/video.js
@@ -6,7 +6,7 @@ Scenery.types.video = Scenery.types.base.extend(function(base){
type: 'video',
init: function(opt){
- opt.scale = opt.scale || (opt.data && opt.data.scale) || 300 / max(300, opt.media.width)
+ opt.scale = opt.scale || (opt.data && opt.data.scale) || DEFAULT_PICTURE_WIDTH / max(DEFAULT_PICTURE_WIDTH, opt.media.width)
base.init.call(this, opt)
diff --git a/public/assets/javascripts/rectangles/util/constants.js b/public/assets/javascripts/rectangles/util/constants.js
index 198cc41..a38325e 100644
--- a/public/assets/javascripts/rectangles/util/constants.js
+++ b/public/assets/javascripts/rectangles/util/constants.js
@@ -20,7 +20,8 @@ var height_min = 200,
side_min = 10,
side_max = 5000,
resize_margin = 8,
- cursor_amp = 1.5
+ cursor_amp = 1.5,
+ DEFAULT_PICTURE_WIDTH = 400
var painting_distance_from_wall = 10,
dot_distance_from_picture = 3
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..205938f 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">remove this room</a>
+ </div>
+
</div>