From 1bd42e15c8242867360c8b5aae9d736b37c57a3d Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Wed, 22 Mar 2017 15:29:37 -0700 Subject: [PATCH] Progress with params in methods --- scripts/core/command.js | 8 ++++++++ scripts/modules/cursor.js | 2 +- scripts/modules/module.js | 5 +++++ scripts/modules/overlay.js | 5 ----- scripts/modules/surface.js | 31 +++++++++++++++++-------------- scripts/units/method.js | 9 +++++---- 6 files changed, 36 insertions(+), 24 deletions(-) diff --git a/scripts/core/command.js b/scripts/core/command.js index 7924232..ac1f25e 100644 --- a/scripts/core/command.js +++ b/scripts/core/command.js @@ -104,4 +104,12 @@ function Command(content) } return a; } + + this.method = function(name) + { + for(i in this.methods()){ + var m = new Method(this.methods()[i]); + if(m.name == name){ return m; } + } + } } \ No newline at end of file diff --git a/scripts/modules/cursor.js b/scripts/modules/cursor.js index fd1c13b..5bbca36 100644 --- a/scripts/modules/cursor.js +++ b/scripts/modules/cursor.js @@ -167,7 +167,7 @@ function Cursor(rune) this.mouse_move = function(position) { if(!this.layer){ this.create_layer(); } - + this.layer.clear(); this.position = ronin.magnet.update_mouse(position); diff --git a/scripts/modules/module.js b/scripts/modules/module.js index c5c1ef1..5a14099 100644 --- a/scripts/modules/module.js +++ b/scripts/modules/module.js @@ -13,6 +13,11 @@ function Module(rune) console.log("Installing "+ronin.modules[this.rune].constructor.name); } + this.context = function() + { + return this.select_layer().context(); + } + this.create_layer = function() { this.layer = new Layer(this.constructor.name+".Preview",this); diff --git a/scripts/modules/overlay.js b/scripts/modules/overlay.js index 611fd67..cd1d1cf 100644 --- a/scripts/modules/overlay.js +++ b/scripts/modules/overlay.js @@ -127,11 +127,6 @@ function Overlay(rune) this.context().closePath(); } - this.clear = function() - { - this.context().clearRect(0, 0, ronin.surface.settings["size"].width, ronin.surface.settings["size"].height); - } - // Cursor this.live_draw_from = null; diff --git a/scripts/modules/surface.js b/scripts/modules/surface.js index 5c4075b..0a34435 100644 --- a/scripts/modules/surface.js +++ b/scripts/modules/surface.js @@ -4,7 +4,7 @@ function Surface(rune) this.element = null; this.settings = {"size":new Rect("200x200")}; - this.methods = [new Method("resize",[new Rect().name])] + this.methods = [new Method("resize",[new Rect().name]),new Method("crop",[new Position().name,new Rect().name])] this.layers = {}; this.active_layer = null; @@ -130,11 +130,19 @@ function Surface(rune) if(keys[loc-1] != null){this.select_layer(ronin.surface.layers[keys[loc-1]]);} } - // Layers + this.passive = function(cmd) + { + var crop = ronin.terminal.cmd().method("crop"); - this.context = function() - { - return this.active_layer.context(); + if(crop && crop.params.length == 2){ + console.log(crop); + ronin.overlay.select_layer().clear(); + ronin.overlay.draw_rect(new Position(crop.params[0]),new Rect(crop.params[1])); + } + else{ + console.log("Missing params") + } + ronin.terminal.update_hint(); } // Cursor @@ -146,19 +154,14 @@ function Surface(rune) this.mouse_down = function(position) { - ronin.overlay.clear(); + ronin.overlay.select_layer().clear(); ronin.overlay.draw_pointer(position); - ronin.terminal.input_element.value = "| "+this.mouse_from.render(); } this.mouse_move = function(position,rect) - { - ronin.overlay.clear(); - - ronin.overlay.draw_rect(this.mouse_from,rect); - ronin.terminal.input_element.value = "@ "+this.mouse_from.render()+" "+rect.render(); - - ronin.terminal.update_hint(); + { + ronin.terminal.input_element.value = "@ crop:"+this.mouse_from.render()+":"+rect.render()+" "; + this.passive(); } this.mouse_up = function(position,rect) diff --git a/scripts/units/method.js b/scripts/units/method.js index 3c0f7bb..4b680a0 100644 --- a/scripts/units/method.js +++ b/scripts/units/method.js @@ -1,16 +1,17 @@ -function Method(name,params) +function Method(method_str) { Unit.call(this); - this.name = name; - this.params = params; + var content = method_str.split(":"); + this.name = content.shift(); + this.params = content; this.example = ""; this.render = function() { var s = name+":"; for(param in this.params){ - s += this.params[param]+"," + s += this.params[param]+":" } s = s.substr(0,s.length-1);