From 2636ad61472943f5cd3549020a4fab4d8613c8bd Mon Sep 17 00:00:00 2001 From: nitin gupta Date: Sun, 1 Feb 2026 11:04:11 +0530 Subject: [PATCH] feat: add keyboard shortcuts (R=restart, Space=start, Esc=quit) --- Scripts/input_handler.gd | 42 ++++++++++++++++++++++++++++++++++++++++ project.godot | 7 ++++++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Scripts/input_handler.gd diff --git a/Scripts/input_handler.gd b/Scripts/input_handler.gd new file mode 100644 index 0000000..24094be --- /dev/null +++ b/Scripts/input_handler.gd @@ -0,0 +1,42 @@ +extends Node + + + +func _input(event: InputEvent) -> void: + if event is InputEventKey and event.pressed: + match event.keycode: + KEY_R: + _restart_level() + KEY_SPACE: + _start_game() + KEY_ESCAPE: + _quit_game() + + +func _restart_level() -> void: + print("[InputHandler] Restart pressed") + Level.initialise() + get_tree().reload_current_scene() + ConveyerController.initialise() + + +func _start_game() -> void: + # Only start if not already started + if not ConveyerController.can_send: + print("[InputHandler] Start pressed (Space)") + Level.initialise() + ConveyerController.can_send = true + + +func _quit_game() -> void: + print("[InputHandler] Quit pressed (Esc)") + + if Level.levelind > 0: + + Level.levelind = 0 + Level.initialise() + ConveyerController.initialise() + get_tree().change_scene_to_file("res://Scenes/basicEventFlow.tscn") + else: + + get_tree().quit() diff --git a/project.godot b/project.godot index fdbdc1c..82be2fa 100644 --- a/project.godot +++ b/project.godot @@ -8,11 +8,15 @@ config_version=5 +[animation] + +compatibility/default_parent_skeleton_in_mesh_instance_3d=true + [application] config/name="eventing-game" run/main_scene="res://Scenes/basicEventFlow.tscn" -config/features=PackedStringArray("4.3", "GL Compatibility") +config/features=PackedStringArray("4.6", "GL Compatibility") config/icon="res://icon.svg" [autoload] @@ -20,6 +24,7 @@ config/icon="res://icon.svg" ConveyerController="*res://Scripts/ConveyerController.gd" Level="*res://Scripts/level.gd" AudioManager="*res://Scripts/AudioManager.gd" +InputHandler="*res://Scripts/input_handler.gd" [input]