diff --git a/index.html b/index.html
index 459cf47..3011d3d 100644
--- a/index.html
+++ b/index.html
@@ -11,6 +11,7 @@
+
diff --git a/scripts/core/command.js b/scripts/core/command.js
index e50c81f..dc16813 100644
--- a/scripts/core/command.js
+++ b/scripts/core/command.js
@@ -84,8 +84,8 @@ function Command(content)
this.setting = function(name)
{
for (i = 0; i < this.content.length; i++) {
- if(this.content[i].indexOf(":") >= 0){
- var parts = this.content[i].split(":");
+ if(this.content[i].indexOf("=") >= 0){
+ var parts = this.content[i].split("=");
if(parts[0] == name){
return new Setting(parts[0],parts[1]);
}
diff --git a/scripts/core/init.js b/scripts/core/init.js
index 0412eb8..5f79fc5 100644
--- a/scripts/core/init.js
+++ b/scripts/core/init.js
@@ -32,9 +32,9 @@ starting_canvas.width = parseInt(starting_canvas.width/40) * 40;
starting_canvas.height = parseInt(starting_canvas.height/40) * 40;
ronin.terminal.query("~ "+ronin.timestamp());
-ronin.terminal.query("@ size:"+starting_canvas.render());
-ronin.terminal.query("@ layer:Main");
-ronin.terminal.query("- color:#ff0000");
+ronin.terminal.query("@ size="+starting_canvas.render());
+ronin.terminal.query("@ layer=Main");
+ronin.terminal.query("- color=#ff0000");
// ronin.terminal.query("# fill=#ff0000");
// ronin.terminal.query("- 0,0");
// ronin.terminal.query("- 1,1");
diff --git a/scripts/core/ronin.js b/scripts/core/ronin.js
index 0895fa8..29bfb3e 100644
--- a/scripts/core/ronin.js
+++ b/scripts/core/ronin.js
@@ -19,13 +19,13 @@ function Ronin()
this.modules[this.surface.rune] = this.surface;
this.modules[this.fileload.rune] = this.fileload;
this.modules[this.filesave.rune] = this.filesave;
- this.modules[this.overlay.rune] = this.overlay;
this.modules[this.render.rune] = this.render;
this.modules[this.brush.rune] = this.brush;
this.modules[this.eye.rune] = this.eye;
this.modules[this.typo.rune] = this.typo;
this.modules[this.vector.rune] = this.vector;
this.modules[this.terminal.rune] = this.terminal;
+ this.modules[this.overlay.rune] = this.overlay;
this.modules[this.cursor.rune] = this.cursor;
diff --git a/scripts/modules/brush.js b/scripts/modules/brush.js
index a0225b0..a63731d 100644
--- a/scripts/modules/brush.js
+++ b/scripts/modules/brush.js
@@ -79,7 +79,7 @@ function Brush(rune)
this.mouse_pointer = function(position)
{
- return ronin.cursor.draw_pointer_circle(position,this.settings["size"]);
+ return ronin.cursor.draw_pointer_circle(position,this.settings["size"].float);
}
this.mouse_mode = function()
diff --git a/scripts/modules/cursor.js b/scripts/modules/cursor.js
index 9486f7d..d460f9d 100644
--- a/scripts/modules/cursor.js
+++ b/scripts/modules/cursor.js
@@ -96,7 +96,40 @@ function Cursor(rune)
this.pointer_last = this.pointer_last ? this.pointer_last : position;
this.layer.context().beginPath();
- this.layer.context().arc(position.x, position.y, 3.5, 0, 2 * Math.PI, false);
+ this.layer.context().moveTo(this.pointer_last.x,this.pointer_last.y);
+ this.layer.context().lineTo(position.x,position.y);
+ this.layer.context().lineCap="round";
+ this.layer.context().lineWidth = 1;
+ this.layer.context().strokeStyle = "white";
+ this.layer.context().stroke();
+ this.layer.context().closePath();
+
+ this.layer.context().beginPath();
+ this.layer.context().arc(position.x, position.y, size+1, 0, 2 * Math.PI, false);
+ this.layer.context().lineWidth = 1;
+ this.layer.context().strokeStyle = "white";
+ this.layer.context().stroke();
+ this.layer.context().closePath();
+
+ this.pointer_last = position;
+ }
+
+ this.draw_pointer_drag = function(position)
+ {
+ if(!this.layer){ this.create_layer(); }
+
+ this.pointer_last = this.pointer_last ? this.pointer_last : position;
+
+ this.layer.context().beginPath();
+
+ this.layer.context().moveTo(position.x,position.y - 3);
+ this.layer.context().lineTo(position.x,position.y + 3);
+ this.layer.context().moveTo(position.x - 2,position.y - 3);
+ this.layer.context().lineTo(position.x - 2,position.y + 3);
+ this.layer.context().moveTo(position.x + 2,position.y - 3);
+ this.layer.context().lineTo(position.x + 2,position.y + 3);
+
+ this.layer.context().lineCap="round";
this.layer.context().lineWidth = 1;
this.layer.context().strokeStyle = "white";
this.layer.context().stroke();
diff --git a/scripts/modules/default.js b/scripts/modules/default.js
index 326bfbe..4ab56f0 100644
--- a/scripts/modules/default.js
+++ b/scripts/modules/default.js
@@ -9,6 +9,11 @@ function Default(rune)
return "Drag";
}
+ this.mouse_pointer = function(position)
+ {
+ return ronin.cursor.draw_pointer_drag(position);
+ }
+
this.drag_from = null;
this.drag_offset_x = 0;
this.drag_offset_y = 0;
diff --git a/scripts/modules/module.js b/scripts/modules/module.js
index 710f6a2..80612db 100644
--- a/scripts/modules/module.js
+++ b/scripts/modules/module.js
@@ -3,6 +3,7 @@ function Module(rune)
this.rune = rune;
this.element = null;
this.settings = {};
+ this.methods = {};
this.layer = null;
this.docs = "Missing documentation.";
@@ -50,7 +51,10 @@ function Module(rune)
var h = ""+ronin.module.constructor.name+" ";
for(setting in ronin.module.settings){
- h += setting+":"+ronin.module.settings[setting].render()+" ";
+ h += setting+"="+ronin.module.settings[setting].render()+" ";
+ }
+ for(method in ronin.module.methods){
+ h += ronin.module.methods[method].render()+" ";
}
h += ronin.module.mouse_mode() ? ""+ronin.module.mouse_mode()+"" : "";
diff --git a/scripts/modules/surface.js b/scripts/modules/surface.js
index 8e2683d..344fb0a 100644
--- a/scripts/modules/surface.js
+++ b/scripts/modules/surface.js
@@ -4,6 +4,7 @@ function Surface(rune)
this.element = null;
this.settings = {"size":new Rect("200x200")};
+ this.methods = {"layer":new Method("layer",["name"])}
this.layers = {};
this.active_layer = null;
diff --git a/scripts/modules/surface.layer.js b/scripts/modules/surface.layer.js
index d7a473f..b3f4ebe 100644
--- a/scripts/modules/surface.layer.js
+++ b/scripts/modules/surface.layer.js
@@ -1,6 +1,7 @@
function Layer(name,manager = null)
{
- this.rune = "@";
+ Module.call(this,"#");
+
this.name = name;
this.manager = manager;
this.element = document.createElement("canvas");
@@ -68,6 +69,11 @@ function Layer(name,manager = null)
return ""+e_name+"";
}
+ this.mouse_pointer = function(position)
+ {
+ return ronin.cursor.draw_pointer_drag(position);
+ }
+
this.mouse_mode = function()
{
return "Move";
diff --git a/scripts/modules/typographe.js b/scripts/modules/typographe.js
index e7aa8f1..1665213 100644
--- a/scripts/modules/typographe.js
+++ b/scripts/modules/typographe.js
@@ -2,8 +2,8 @@ function Typographe(rune)
{
Module.call(this,rune);
- this.parameters = [Position,Color,Value];
- this.variables = {"text" : null, "font" : "Georgia"};
+ this.settings = {"color":new Color("#ffffff"),"size":new Value(10)};
+ this.methods = {"draw":new Method("draw",["text","position","font"])}
this.active = function(cmd)
{
diff --git a/scripts/units/method.js b/scripts/units/method.js
new file mode 100644
index 0000000..3c0f7bb
--- /dev/null
+++ b/scripts/units/method.js
@@ -0,0 +1,19 @@
+function Method(name,params)
+{
+ Unit.call(this);
+
+ this.name = name;
+ this.params = params;
+ this.example = "";
+
+ this.render = function()
+ {
+ var s = name+":";
+ for(param in this.params){
+ s += this.params[param]+","
+ }
+ s = s.substr(0,s.length-1);
+
+ return s;
+ }
+}
\ No newline at end of file