From c02348a0915001390e1635cecda23e9e38df2c9a Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Tue, 3 Jan 2017 15:01:52 -0700 Subject: [PATCH] Option to delete layers --- scripts/core/commander.js | 27 ++++++++++++++++++--------- scripts/core/init.js | 1 + scripts/core/keyboard.js | 5 ++--- scripts/modules/surface.js | 14 ++++++++++++-- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/scripts/core/commander.js b/scripts/core/commander.js index e49dd90..bfb4b05 100644 --- a/scripts/core/commander.js +++ b/scripts/core/commander.js @@ -6,21 +6,32 @@ function Commander(element,element_input) this.storage = []; this.storage_index = 0; this.always_show = false; + + var queue = []; this.query = function(input_str) { if(input_str.indexOf(";") > 0){ - var multi = input_str.split(";"); - for (i = 0; i < multi.length; i++) { - this.query(multi[i]); - } + queue = input_str.split(";"); } else{ - this.active(input_str); + queue.push(input_str) + } + run(); + this.hide(); + } + + function run() + { + active(queue[0].trim()); + + queue.shift(); + if(queue.length > 0){ + setTimeout(function(){ run(); }, 100); } } - - this.active = function(content) + + function active(content) { var key = content[0]; var cmd = new Command(content.substring(1).split(" ")); @@ -29,8 +40,6 @@ function Commander(element,element_input) ronin.modules[key].active(cmd); } - this.hide(); - ronin.history.add(content); } diff --git a/scripts/core/init.js b/scripts/core/init.js index 46bd402..4dff0ae 100644 --- a/scripts/core/init.js +++ b/scripts/core/init.js @@ -9,6 +9,7 @@ var commander = new Commander(document.getElementById("commander"),document.getE commander.hint.element = document.getElementById('commander_hint'); // Cursor + document.addEventListener('mousedown', function(e){ ronin.cursor.mouse_down(ronin.position_in_canvas(e));}, false); document.addEventListener('mousemove', function(e){ ronin.cursor.mouse_move(ronin.position_in_canvas(e));}, false); document.addEventListener('mouseup', function(e){ ronin.cursor.mouse_up(ronin.position_in_canvas(e));}, false); diff --git a/scripts/core/keyboard.js b/scripts/core/keyboard.js index 52a6dc8..be3ee61 100644 --- a/scripts/core/keyboard.js +++ b/scripts/core/keyboard.js @@ -8,15 +8,14 @@ function Keyboard() case "ArrowDown": this.key_arrow_down(); break; case "ArrowLeft": this.key_arrow_left(); break; case "ArrowRight": this.key_arrow_right(); break; - case ":": this.key_colon(); break; - case ";": if (event.shiftKey) this.key_colon(); break; + // case ":": this.key_colon(); break; case "Escape": this.key_escape(); break; } switch(event.which) { case 13: this.key_enter(); break; - case 186: this.key_colon(); break; + case 186: if(event.shiftKey){this.key_colon();} break; case 27: this.key_escape(); break; case 219: ronin.brush.size_up(); break; case 221: ronin.brush.size_down(); break; diff --git a/scripts/modules/surface.js b/scripts/modules/surface.js index 439f923..bcd80ab 100644 --- a/scripts/modules/surface.js +++ b/scripts/modules/surface.js @@ -3,7 +3,7 @@ function Surface(rune) Module.call(this,rune); this.element = null; - this.parameters = [Rect,Color]; + this.parameters = [Rect,Color,Bang]; this.variables = {"layer" : "main"}; this.layers = {}; @@ -24,6 +24,11 @@ function Surface(rune) this.context().fillStyle = cmd.color().hex; this.context().fill(); } + if(cmd.bang() && Object.keys(ronin.surface.layers).length > 1){ + delete this.layers[this.active_layer.name]; + this.select_any_layer(); + ronin.widget.update(); + } if(cmd.variable("layer")){ var name = cmd.variable("layer").value; @@ -32,7 +37,6 @@ function Surface(rune) } this.select_layer(this.layers[name]); } - } this.select_layer = function(layer) @@ -41,6 +45,12 @@ function Surface(rune) this.active_layer = layer; } + this.select_any_layer = function() + { + var layer_name = Object.keys(ronin.surface.layers)[0]; + this.select_layer(ronin.surface.layers[layer_name]); + } + this.add_layer = function(layer) { console.log("Creating layer:"+layer.name);