summaryrefslogtreecommitdiff
path: root/public
diff options
context:
space:
mode:
Diffstat (limited to 'public')
-rw-r--r--public/assets/javascripts/rectangles/engine/map/ui_editor.js18
-rw-r--r--public/assets/javascripts/rectangles/engine/rooms/_rooms.js1
-rw-r--r--public/assets/javascripts/ui/builder/BuilderToolbar.js23
-rw-r--r--public/assets/javascripts/ui/editor/EditorToolbar.js8
4 files changed, 38 insertions, 12 deletions
diff --git a/public/assets/javascripts/rectangles/engine/map/ui_editor.js b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
index 262272b..ea7a356 100644
--- a/public/assets/javascripts/rectangles/engine/map/ui_editor.js
+++ b/public/assets/javascripts/rectangles/engine/map/ui_editor.js
@@ -20,6 +20,13 @@ Map.UI.Editor = function(map){
update: mousewheel,
})
+ base.permissions = new Permissions({
+ create: true,
+ move: true,
+ resize: true,
+ destroy: false,
+ })
+
//
function down (e, cursor){
@@ -43,12 +50,17 @@ Map.UI.Editor = function(map){
return r.focused = r.rect.contains(cursor.x.a, cursor.y.a)
})
- if (intersects.length) {
+ if (intersects.length && base.permissions.destroy) {
+ base.mouse.down = false
+ Rooms.remove(intersects[0])
+ return
+ }
+ else if (intersects.length && (base.permissions.move || base.permissions.resize)) {
base.dragging = intersects[0]
- base.resizing = base.dragging.rect.nearEdge(cursor.x.a, cursor.y.a, resize_margin / map.zoom)
+ base.resizing = base.permissions.resize && base.dragging.rect.nearEdge(cursor.x.a, cursor.y.a, resize_margin / map.zoom)
base.dragging.rect.translation.sides = base.resizing
}
- else {
+ else if (base.permissions.create) {
base.creating = true
}
diff --git a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
index 0186e9a..48931e9 100644
--- a/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
+++ b/public/assets/javascripts/rectangles/engine/rooms/_rooms.js
@@ -30,6 +30,7 @@ var Rooms = new function(){
base.remove = function(room){
delete base.list[room.id]
+ Rooms.clipper.update()
}
base.removeAll = function(){
diff --git a/public/assets/javascripts/ui/builder/BuilderToolbar.js b/public/assets/javascripts/ui/builder/BuilderToolbar.js
index 4ca2e6c..df98ab0 100644
--- a/public/assets/javascripts/ui/builder/BuilderToolbar.js
+++ b/public/assets/javascripts/ui/builder/BuilderToolbar.js
@@ -6,7 +6,7 @@ var BuilderToolbar = View.extend({
"click [data-role='toggle-map-view']": 'toggleMap',
"click [data-role='toggle-layout-settings']": 'toggleSettings',
"click [data-role='undo']": 'undo',
- "click [data-role='draw-mode']": 'draw',
+ "click [data-role='create-mode']": 'create',
"click [data-role='resize-mode']": 'resize',
"click [data-role='move-mode']": 'move',
"click [data-role='destroy-mode']": 'destroy',
@@ -14,6 +14,7 @@ var BuilderToolbar = View.extend({
initialize: function(opt){
this.parent = opt.parent
+ map.ui.permissions.toggle()
},
toggleMap: function(){
@@ -27,16 +28,28 @@ var BuilderToolbar = View.extend({
undo: function(){
},
- draw: function(){
+ create: function(e){
+ var state = map.ui.permissions.toggle("create")
+ $(".inuse").removeClass("inuse")
+ $(e.currentTarget).toggleClass("inuse", state)
},
- resize: function(){
+ resize: function(e){
+ var state = map.ui.permissions.toggle("resize")
+ $(".inuse").removeClass("inuse")
+ $(e.currentTarget).toggleClass("inuse", state)
},
- move: function(){
+ move: function(e){
+ var state = map.ui.permissions.toggle("move")
+ $(".inuse").removeClass("inuse")
+ $(e.currentTarget).toggleClass("inuse", state)
},
- destroy: function(){
+ destroy: function(e){
+ var state = map.ui.permissions.toggle("destroy")
+ $(".inuse").removeClass("inuse")
+ $(e.currentTarget).toggleClass("inuse", state)
},
})
diff --git a/public/assets/javascripts/ui/editor/EditorToolbar.js b/public/assets/javascripts/ui/editor/EditorToolbar.js
index d5d3c4e..c3589db 100644
--- a/public/assets/javascripts/ui/editor/EditorToolbar.js
+++ b/public/assets/javascripts/ui/editor/EditorToolbar.js
@@ -31,19 +31,19 @@ var EditorToolbar = View.extend({
this.parent.mediaUpload.show()
},
- resizeMedia: function(){
+ resizeMedia: function(e){
var state = editor.permissions.toggle("resize")
$(".inuse").removeClass("inuse")
- $("[data-role='resize-media']").toggleClass("inuse", state)
+ $(e.currentTarget).toggleClass("inuse", state)
if (state) {
Scenery.resize.hide()
}
},
- destroyMedia: function(){
+ destroyMedia: function(e){
var state = editor.permissions.toggle("destroy")
$(".inuse").removeClass("inuse")
- $("[data-role='destroy-media']").toggleClass("inuse", state)
+ $(e.currentTarget).toggleClass("inuse", state)
$("body").toggleClass("destroyActive", state)
},