Improved brush

This commit is contained in:
Devine Lu Linvega 2017-05-24 15:28:42 -10:00
parent 02b8ec54ad
commit b59abbd3bc
4 changed files with 41 additions and 9 deletions

View File

@ -1,4 +1,4 @@
frame.resize 400x400 frame.resize 500x500
layer.fill #A1A1A1 layer.fill #eeeeee
brush:color #333333 brush:color #333333
brush:size 3 brush:size 3

View File

@ -9,6 +9,7 @@ function Brush(rune)
this.add_setting(new Setting("color","#00ff00")); this.add_setting(new Setting("color","#00ff00"));
this.add_setting(new Setting("size","2")); 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("add_pointer",["Position","Color","Scale","mirror_x","mirror_y"]));
this.add_method(new Method("clear"));
this.add_pointer = function(cmd, preview = false) this.add_pointer = function(cmd, preview = false)
{ {
@ -40,6 +41,12 @@ function Brush(rune)
return 1, "ok"; return 1, "ok";
} }
this.clear = function()
{
this.pointers = [];
return 1,"Removed all pointers.";
}
this.size_up = function() this.size_up = function()
{ {
var new_size = this.settings["size"].to_f() + 1; var new_size = this.settings["size"].to_f() + 1;
@ -77,6 +84,7 @@ function Brush(rune)
this.mouse_pointer = function(position) 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()); 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(); this.erase();
} }
else{ 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++) { for (i = 0; i < ronin.brush.pointers.length; i++) {
ronin.brush.pointers[i].start(); ronin.brush.pointers[i].start();
} }

View File

@ -157,6 +157,35 @@ function Cursor(rune)
this.pointer_last = position; 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) this.draw_pointer_circle = function(position,size = 1)
{ {
if(!this.layer){ this.create_layer(); } if(!this.layer){ this.create_layer(); }

View File

@ -99,16 +99,10 @@ function Frame(rune)
this.select_layer = function(layer) this.select_layer = function(layer)
{ {
if(!layer){ return; } if(!layer || layer.manager){ return; }
this.active_layer = layer; 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) this.add_layer = function(layer)
{ {
if(this.active_layer){layer.set_depth(this.active_layer.depth+1);} if(this.active_layer){layer.set_depth(this.active_layer.depth+1);}