62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
function Type(rune)
|
|
{
|
|
Module.call(this,rune);
|
|
|
|
this.add_method(new Method("write",["Position","Text"]));
|
|
this.add_mode(new Mode("write"));
|
|
this.add_setting(new Setting("color","#000000"));
|
|
this.add_setting(new Setting("size","40"));
|
|
this.add_setting(new Setting("font","DIN Medium"));
|
|
|
|
this.write = function(cmd,preview = false)
|
|
{
|
|
if(!this.layer){ this.create_layer(); this.layer.is_blinking = true; }
|
|
|
|
this.layer.clear();
|
|
|
|
var text = cmd.text() ? cmd.text() : "Text";
|
|
var position = cmd.position() ? cmd.position() : new Position(40,80);
|
|
var color = this.settings["color"].value;
|
|
var size = parseFloat(this.settings["size"].value);
|
|
var font = this.settings["font"].value;
|
|
|
|
var target_layer = preview ? this.layer : ronin.frame.active_layer;
|
|
target_layer.context().font = size+"px "+font;
|
|
target_layer.context().fillStyle = color;
|
|
target_layer.context().fillText(text,position.x,position.y);
|
|
|
|
if(!preview){ this.layer.remove(this); }
|
|
|
|
return 1, "Wrote "+text+" at "+position.toString();
|
|
}
|
|
|
|
// Mouse
|
|
|
|
this.mouse_mode = function()
|
|
{
|
|
return "Write";
|
|
}
|
|
|
|
this.mouse_down = function(position)
|
|
{
|
|
var str = ronin.terminal.cmd().text() ? ronin.terminal.cmd().text() : "Text";
|
|
var line = "type.write "+position.toString()+" \""+str+"\"";
|
|
ronin.terminal.update(line);
|
|
}
|
|
|
|
this.mouse_move = function(position,rect)
|
|
{
|
|
}
|
|
|
|
this.mouse_up = function(position)
|
|
{
|
|
var str = ronin.terminal.cmd().text() ? ronin.terminal.cmd().text() : "Text";
|
|
var line = "type.write "+position.toString()+" \""+str+"\"";
|
|
ronin.terminal.update(line);
|
|
}
|
|
|
|
this.key_escape = function()
|
|
{
|
|
if(this.layer){ this.layer.remove(this); }
|
|
}
|
|
} |