From 99f1929618e258ab2d0012fdfc5d1d3202f79b95 Mon Sep 17 00:00:00 2001 From: Devine Lu Linvega Date: Thu, 19 Jan 2017 10:27:21 -0700 Subject: [PATCH] Implementing cursor managers --- scripts/core/command.js | 6 ++++++ scripts/core/commander.hint.js | 5 ++++- scripts/core/commander.js | 19 +++++++++++++++---- scripts/core/cursor.js | 3 +++ scripts/core/init.js | 2 +- scripts/core/keyboard.js | 2 +- scripts/modules/typographe.js | 31 +++++++++++++++++++++++++++++++ 7 files changed, 61 insertions(+), 7 deletions(-) diff --git a/scripts/core/command.js b/scripts/core/command.js index 27903dc..2373574 100644 --- a/scripts/core/command.js +++ b/scripts/core/command.js @@ -1,6 +1,12 @@ function Command(content) { this.content = content; + + this.inject_position = function(injection) + { + console.log("> "+injection); + console.log("- "+content); + } // Parser diff --git a/scripts/core/commander.hint.js b/scripts/core/commander.hint.js index 61df582..ca3aec1 100644 --- a/scripts/core/commander.hint.js +++ b/scripts/core/commander.hint.js @@ -4,8 +4,11 @@ function Hint(element) this.element = element; - this.update = function(module,cmd) + this.update = function() { + var module = ronin.module; + var cmd = commander.cmd(); + if(module){ this.element.innerHTML = this.message(module,cmd); this.element.style.display = "block"; diff --git a/scripts/core/commander.js b/scripts/core/commander.js index 6ad36cb..941d292 100644 --- a/scripts/core/commander.js +++ b/scripts/core/commander.js @@ -55,8 +55,20 @@ function Commander(element,element_input) if(ronin.modules[key]){ ronin.modules[key].passive(cmd); ronin.module = ronin.modules[key]; + ronin.cursor.set_mode(ronin.module); } - this.hint.update(ronin.module,cmd); + else{ + ronin.cursor.set_mode(ronin.brush); + } + this.hint.update(); + } + + this.cmd = function() + { + var content = this.element_input.value.trim(); + var key = content[0]; + var cmd = new Command(content.substring(1).split(" ")); + return cmd; } // @@ -95,6 +107,5 @@ function Commander(element,element_input) { this.storage_index -= this.storage_index < 1 ? 0 : 1; this.element_input.value = this.storage[this.storage_index]; - } - -} + } +} \ No newline at end of file diff --git a/scripts/core/cursor.js b/scripts/core/cursor.js index 427010c..6730e86 100644 --- a/scripts/core/cursor.js +++ b/scripts/core/cursor.js @@ -12,6 +12,7 @@ function Cursor() else if(event.ctrlKey === true){ this.set_mode(ronin.overlay); } else if(event.altKey === true){ this.set_mode(ronin.surface); } else if(event.shiftKey === true){ this.set_mode(ronin.eraser); } + else if(ronin.module){ this.set_mode(ronin.module); } else{ this.set_mode(ronin.brush); } } @@ -28,6 +29,7 @@ function Cursor() this.position = position; this.mode.mouse_down(position); ronin.widget.update(); + // console.log(this.mode); } this.mouse_move = function(position) @@ -41,5 +43,6 @@ function Cursor() this.position = position; this.mode.mouse_up(position); ronin.widget.update(); + commander.element_input.focus(); } } \ No newline at end of file diff --git a/scripts/core/init.js b/scripts/core/init.js index faf58a3..bb5a636 100644 --- a/scripts/core/init.js +++ b/scripts/core/init.js @@ -26,7 +26,7 @@ ronin.install(); // Canvas var starting_canvas = new Rect(); starting_canvas.width = window.innerWidth - 200; -starting_canvas.height = window.innerHeight - 400; +starting_canvas.height = window.innerHeight - 200; // Clamp diff --git a/scripts/core/keyboard.js b/scripts/core/keyboard.js index be3ee61..6dadbf2 100644 --- a/scripts/core/keyboard.js +++ b/scripts/core/keyboard.js @@ -26,7 +26,7 @@ function Keyboard() // Passive commander.passive(commander.element_input.value); - ronin.cursor.set_mode(ronin.brush); + // ronin.cursor.set_mode(ronin.brush); ronin.widget.update(); }; diff --git a/scripts/modules/typographe.js b/scripts/modules/typographe.js index cd2aaf8..ebdd367 100644 --- a/scripts/modules/typographe.js +++ b/scripts/modules/typographe.js @@ -46,4 +46,35 @@ function Typographe(rune) ctx.fillStyle = color.hex; ctx.fillText(text,position.x,position.y); } + + // Mouse + + this.click = null; + + this.widget_cursor = function() + { + return "&"; + } + + this.mouse_down = function(position) + { + this.click = true; + ronin.overlay.draw(position); + commander.element_input.value = "& "+position.render(); + commander.hint.update(); + } + + this.mouse_move = function(position) + { + if(!this.click){ return; } + ronin.overlay.draw(position); + commander.element_input.value = "& "+position.render(); + } + + this.mouse_up = function(position) + { + this.click = null; + ronin.overlay.draw(position); + commander.element_input.value = "& "+position.render(); + } } \ No newline at end of file