diff --git a/Assets/Scripts/Player Controls/interact.gd b/Assets/Scripts/Player Controls/interact.gd index da8a67f..a7adcd5 100644 --- a/Assets/Scripts/Player Controls/interact.gd +++ b/Assets/Scripts/Player Controls/interact.gd @@ -5,7 +5,6 @@ var rayRange = 2000 @onready var crosshair = %CrosshairCenter @export var terminal: TerminalControls - func _physics_process(_delta: float) -> void: Get_Camera_Collision() @@ -24,24 +23,26 @@ func Get_Camera_Collision(): if crosshair and is_instance_valid(crosshair): crosshair.set_highlight(is_highlighted) + func _input(event: InputEvent) -> void: if event is InputEventKey and event.pressed and crosshair.is_highlighted: - if event.keycode == KEY_PAGEUP: - terminal.ScrollUp() - - if event.keycode == KEY_PAGEDOWN: - terminal.ScrollDown() - - if event.keycode == KEY_BACKSPACE: + match event.keycode: + KEY_PAGEUP: + terminal.ScrollUp() - terminal.InputDelChar() + KEY_PAGEDOWN: + terminal.ScrollDown() + + KEY_BACKSPACE: + terminal.InputDelChar() + + KEY_ENTER: + terminal.EnterCommand() if event.unicode > 31: var character = char(event.unicode) if terminal: # Check that you assigned the node in the Inspector terminal.InputChar(character) - - if event.keycode == KEY_ENTER: - terminal.EnterCommand() + diff --git a/Assets/Scripts/UI/terminal/terminal_controls.gd b/Assets/Scripts/UI/terminal/terminal_controls.gd index e5926b4..c6fc20e 100644 --- a/Assets/Scripts/UI/terminal/terminal_controls.gd +++ b/Assets/Scripts/UI/terminal/terminal_controls.gd @@ -38,20 +38,19 @@ func reset_blink() -> void: # --- Input Handling --- func InputChar(input) -> void: - var charPos = terminalLine.get_character_bounds(max(0, terminalLine.text.length() - 1)) if input == null: return - if charPos.end.x > 1600: - pass else: command = input terminalLine.text += command UpdateCaretPos() + await get_tree().create_timer(.01).timeout reset_blink() func InputDelChar() -> void: if terminalLine.text.length() > ("user@work " + directory).length() + 1: terminalLine.text = terminalLine.text.left(-1) UpdateCaretPos() + await get_tree().create_timer(.01).timeout reset_blink() func EnterCommand() -> void: @@ -199,7 +198,7 @@ func ScrollUp(): await get_tree().create_timer(.0001).timeout scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value - 10 ) - call("ScrollUp") + call_deferred("ScrollUp") func ScrollDown(): @@ -207,7 +206,7 @@ func ScrollDown(): await get_tree().create_timer(.0001).timeout scroll.set_deferred("scroll_vertical", scroll.get_v_scroll_bar().value + 10 ) - call("ScrollDown") + call_deferred("ScrollDown")