diff options
Diffstat (limited to 'starling/kernel.scm')
-rw-r--r-- | starling/kernel.scm | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/starling/kernel.scm b/starling/kernel.scm index 5a04178..e6658ca 100644 --- a/starling/kernel.scm +++ b/starling/kernel.scm @@ -46,7 +46,7 @@ #:use-module (starling config) #:use-module (starling node) #:use-module (starling node-2d) - ;;#:use-module (starling repl) + #:use-module (starling repl) #:use-module (starling repl-server) #:use-module (starling minibuffer) #:use-module (starling scene) @@ -168,6 +168,10 @@ (make <fps-display> #:name 'fps) ;; REPL server (make <repl-server> #:name 'repl-server)) + (set! (repl kernel) + (make <repl> + #:name 'repl + #:scene-mux kernel)) (run-script kernel (forever (sleep 60) @@ -175,17 +179,22 @@ (define-method (on-key-press (kernel <kernel>) key modifiers repeat?) ;; Hot keys when in dev mode - (when developer-mode? - (unless (& kernel minibuffer) + (if (and developer-mode? + (not (or (eq? (current-scene kernel) (& kernel minibuffer)) + (eq? (current-scene kernel) (repl kernel))))) (match key + ('backquote + (run-script kernel + (sleep 1) + (open-repl (repl kernel)))) ('x - (when (or (memq 'left-alt modifiers) - (memq 'right-alt modifiers)) - (unless (& kernel minibuffer) - (open-minibuffer kernel)))) + (if (or (memq 'left-alt modifiers) + (memq 'right-alt modifiers)) + (open-minibuffer kernel) + (next-method))) ('escape (abort-game)) - (_ #t)))) - (next-method)) + (_ (next-method))) + (next-method))) (define-method (update-tree (kernel <kernel>) dt) (define (invert-y y) @@ -201,13 +210,11 @@ ((keyboard-down-event? event) (on-key-press kernel (keyboard-event-key event) - (keyboard-event-scancode event) (keyboard-event-modifiers event) (keyboard-event-repeat? event))) ((keyboard-up-event? event) (on-key-release kernel (keyboard-event-key event) - (keyboard-event-scancode event) (keyboard-event-modifiers event))) ((text-input-event? event) (on-text-input kernel @@ -388,12 +395,12 @@ kernel. A convenient procedure for developers." (define-meta-command ((debug-game starling) repl) "debug-game Enter a debugger for the current game loop error." - (debugger (& (current-kernel) repl))) + (debugger (& (current-kernel) repl-server))) (define-meta-command ((resume-game starling) repl) "resume-game Resume the game loop without entering a debugger." - (set! (repl-debugging? (& (current-kernel) repl)) #f)) + (set! (repl-debugging? (& (current-kernel) repl-server)) #f)) (define-meta-command ((reboot starling) repl) "reboot |