Improved brush
This commit is contained in:
parent
02b8ec54ad
commit
b59abbd3bc
@ -1,4 +1,4 @@
|
||||
frame.resize 400x400
|
||||
layer.fill #A1A1A1
|
||||
frame.resize 500x500
|
||||
layer.fill #eeeeee
|
||||
brush:color #333333
|
||||
brush:size 3
|
@ -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();
|
||||
}
|
||||
|
@ -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(); }
|
||||
|
@ -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);}
|
||||
|
Loading…
x
Reference in New Issue
Block a user