From b59abbd3bce4eac8dbdaefc5e9aa2aac1ee7e401 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Wed, 24 May 2017 15:28:42 -1000 Subject: [PATCH] Improved brush --- presets/blank.rin | 4 ++-- scripts/modules/brush.js | 9 +++++++++ scripts/modules/cursor.js | 29 +++++++++++++++++++++++++++++ scripts/modules/frame.js | 8 +------- 4 files changed, 41 insertions(+), 9 deletions(-) diff --git a/presets/blank.rin b/presets/blank.rin index 871f4b6..22a6c07 100644 --- a/presets/blank.rin +++ b/presets/blank.rin @@ -1,4 +1,4 @@ -frame.resize 400x400 -layer.fill #A1A1A1 +frame.resize 500x500 +layer.fill #eeeeee brush:color #333333 brush:size 3 \ No newline at end of file diff --git a/scripts/modules/brush.js b/scripts/modules/brush.js index 1e7233a..0b1d8ec 100644 --- a/scripts/modules/brush.js +++ b/scripts/modules/brush.js @@ -9,6 +9,7 @@ function Brush(rune) this.add_setting(new Setting("color","#00ff00")); this.add_setting(new Setting("size","2")); this.add_method(new Method("add_pointer",["Position","Color","Scale","mirror_x","mirror_y"])); + this.add_method(new Method("clear")); this.add_pointer = function(cmd, preview = false) { @@ -40,6 +41,12 @@ function Brush(rune) return 1, "ok"; } + this.clear = function() + { + this.pointers = []; + return 1,"Removed all pointers."; + } + this.size_up = function() { var new_size = this.settings["size"].to_f() + 1; @@ -77,6 +84,7 @@ function Brush(rune) this.mouse_pointer = function(position) { + if(this.pointers.length < 1){ ronin.cursor.draw_pointer_no_pointer(position); return; } return keyboard.shift_held == true ? ronin.cursor.draw_pointer_circle_eraser(position,this.settings["size"].to_f() * 3) : ronin.cursor.draw_pointer_circle(position,this.settings["size"].to_f()); } @@ -98,6 +106,7 @@ function Brush(rune) this.erase(); } else{ + if(ronin.brush.pointers.length < 1){ ronin.terminal.log(new Log(this,"Brush has no pointers!"))} for (i = 0; i < ronin.brush.pointers.length; i++) { ronin.brush.pointers[i].start(); } diff --git a/scripts/modules/cursor.js b/scripts/modules/cursor.js index 86558df..e62b332 100644 --- a/scripts/modules/cursor.js +++ b/scripts/modules/cursor.js @@ -157,6 +157,35 @@ function Cursor(rune) this.pointer_last = position; } + this.draw_pointer_no_pointer = function(position,size = 2) + { + if(!this.layer){ this.create_layer(); } + + var radius = 4000; + + this.pointer_last = this.pointer_last ? this.pointer_last : position; + + this.layer.context().beginPath(); + + this.layer.context().moveTo(position.x - radius,position.y + radius); + this.layer.context().lineTo(position.x - size,position.y + size); + this.layer.context().moveTo(position.x + radius,position.y + radius); + this.layer.context().lineTo(position.x + size,position.y + size); + + this.layer.context().moveTo(position.x - radius,position.y - radius); + this.layer.context().lineTo(position.x - size,position.y - size); + this.layer.context().moveTo(position.x + radius,position.y - radius); + this.layer.context().lineTo(position.x + size,position.y - size); + + this.layer.context().lineCap="round"; + this.layer.context().lineWidth = 1; + this.layer.context().strokeStyle = "#ff0000"; + this.layer.context().stroke(); + this.layer.context().closePath(); + + this.pointer_last = position; + } + this.draw_pointer_circle = function(position,size = 1) { if(!this.layer){ this.create_layer(); } diff --git a/scripts/modules/frame.js b/scripts/modules/frame.js index 2a17722..e080b34 100644 --- a/scripts/modules/frame.js +++ b/scripts/modules/frame.js @@ -99,16 +99,10 @@ function Frame(rune) this.select_layer = function(layer) { - if(!layer){ return; } + if(!layer || layer.manager){ return; } this.active_layer = layer; } - this.select_any_layer = function() - { - var layer_name = Object.keys(ronin.frame.layers)[0]; - this.select_layer(ronin.frame.layers[layer_name]); - } - this.add_layer = function(layer) { if(this.active_layer){layer.set_depth(this.active_layer.depth+1);}