diff --git a/presets/blank.rin b/presets/blank.rin
index d3fa310..871f4b6 100644
--- a/presets/blank.rin
+++ b/presets/blank.rin
@@ -1,9 +1,4 @@
-~ Setup
-
frame.resize 400x400
layer.fill #A1A1A1
-
-~ Add Code Below
-
brush:color #333333
brush:size 3
\ No newline at end of file
diff --git a/presets/default.rin b/presets/default.rin
index 06db691..8c5eddd 100644
--- a/presets/default.rin
+++ b/presets/default.rin
@@ -13,5 +13,4 @@ type.write 38,252 "B08"
brush:color #000000
brush:size 2
path:line_width 20
-path:line_color #999999
-brush.add_pointer 0,0 #000000 2
\ No newline at end of file
+path:line_color #999999
\ No newline at end of file
diff --git a/scripts/modules/brush.js b/scripts/modules/brush.js
index 5670b0c..1bea088 100644
--- a/scripts/modules/brush.js
+++ b/scripts/modules/brush.js
@@ -3,7 +3,7 @@ function Brush(rune)
Module.call(this,rune);
this.parameters = [];
- this.settings = {color:"#000000","size":2};
+ this.settings = {color:"#000000",size:2};
this.pointers = [new Pointer(new Position("0,0"))];
this.add_method(new Method("add_pointer",["Position","Color","Scale"]));
@@ -25,12 +25,12 @@ function Brush(rune)
this.size_up = function()
{
- this.settings["size"] = parseInt(this.settings["size"]) + 1;
+ this.settings.size = parseInt(this.settings.size) + 1;
}
this.size_down = function()
{
- this.settings["size"] -= parseInt(this.settings["size"]) > 1 ? 1 : 0;
+ this.settings.size -= parseInt(this.settings.size) > 1 ? 1 : 0;
}
// Eraser
@@ -46,7 +46,7 @@ function Brush(rune)
ronin.frame.context().moveTo(this.position_prev.x,this.position_prev.y);
ronin.frame.context().lineTo(position.x,position.y);
ronin.frame.context().lineCap="round";
- ronin.frame.context().lineWidth = this.settings["size"] * 5;
+ ronin.frame.context().lineWidth = this.settings.size * 3;
ronin.frame.context().strokeStyle = new Color("#ff0000").rgba();
ronin.frame.context().stroke();
ronin.frame.context().closePath();
@@ -58,16 +58,16 @@ function Brush(rune)
this.mouse_pointer = function(position)
{
- return ronin.cursor.draw_pointer_circle(position,this.settings["size"]);
+ return keyboard.shift_held == true ? ronin.cursor.draw_pointer_circle_eraser(position,this.settings.size * 3) : ronin.cursor.draw_pointer_circle(position,this.settings.size);
}
this.mouse_mode = function()
{
if(keyboard.shift_held == true){
- return "Eraser "+this.settings["size"];
+ return "Eraser "+this.settings.size;
}
else{
- return "Brush ● "+this.settings["size"];
+ return "Brush ● "+this.settings.size;
}
}
@@ -104,5 +104,6 @@ function Brush(rune)
for (i = 0; i < ronin.brush.pointers.length; i++) {
ronin.brush.pointers[i].stop();
}
+ this.position_prev = null;
}
}
\ No newline at end of file
diff --git a/scripts/modules/brush.pointer.js b/scripts/modules/brush.pointer.js
index b657da1..ca37c6c 100644
--- a/scripts/modules/brush.pointer.js
+++ b/scripts/modules/brush.pointer.js
@@ -15,14 +15,15 @@ function Pointer(offset = new Position(), color = new Color().hex, scale = 1)
this.thickness = function()
{
+ var radius = parseFloat(ronin.brush.settings["size"]) * this.scale;
+
var ratio = 10/this.position().distance_to(this.position_prev[0]);
ratio = ratio > 1 ? 1 : ratio;
- var target = parseFloat(ronin.brush.settings["size"]) * ratio;
- target = target * this.scale;
+ var target = radius * ratio;
- if(this.actual_thickness < target){ this.actual_thickness += 0.4; }
- if(this.actual_thickness > target){ this.actual_thickness -= 0.4; }
+ if(this.actual_thickness < target){ this.actual_thickness += 0.25; }
+ if(this.actual_thickness > target){ this.actual_thickness -= 0.25; }
return this.actual_thickness;
}
@@ -119,6 +120,14 @@ function Pointer(offset = new Position(), color = new Color().hex, scale = 1)
this.start = function()
{
+ var radius = parseFloat(ronin.brush.settings["size"]) * this.scale;
+ this.actual_thickness = radius/2;
+ ronin.frame.context().beginPath();
+ ronin.frame.context().arc(this.position().x, this.position().y, radius/2, 0, 2 * Math.PI, false);
+ ronin.frame.context().lineWidth = 0;
+ ronin.frame.context().fillStyle = this.color;
+ ronin.frame.context().fill();
+ ronin.frame.context().closePath();
}
this.stop = function()
diff --git a/scripts/modules/cursor.js b/scripts/modules/cursor.js
index f904ff4..0d8dcba 100644
--- a/scripts/modules/cursor.js
+++ b/scripts/modules/cursor.js
@@ -149,6 +149,22 @@ function Cursor(rune)
this.pointer_last = position;
}
+ this.draw_pointer_circle_eraser = function(position,size = 1)
+ {
+ if(!this.layer){ this.create_layer(); }
+
+ this.pointer_last = this.pointer_last ? this.pointer_last : position;
+
+ this.layer.context().beginPath();
+ this.layer.context().arc(position.x, position.y, (size/2), 0, 2 * Math.PI, false);
+ this.layer.context().lineWidth = 1;
+ this.layer.context().strokeStyle = this.settings.color;
+ this.layer.context().stroke();
+ this.layer.context().closePath();
+
+ this.pointer_last = position;
+ }
+
this.draw_pointer_drag = function(position)
{
if(!this.layer){ this.create_layer(); }
diff --git a/scripts/modules/terminal.js b/scripts/modules/terminal.js
index 87a086e..f79fc60 100644
--- a/scripts/modules/terminal.js
+++ b/scripts/modules/terminal.js
@@ -71,7 +71,7 @@ function Terminal(rune)
this.run(new Command(target_line));
}
- if(lines.length > 0){ setTimeout(function(){ ronin.terminal.run_multi(lines.join(";")) }, 250); }
+ if(lines.length > 0){ setTimeout(function(){ ronin.terminal.run_multi(lines.join(";")) }, 50); }
}
this.hint = function(method)