From 46bd73a4d08eceef45c3c0cc144674a557c1af7c Mon Sep 17 00:00:00 2001 From: Raul Santos Date: Mon, 16 Jun 2025 21:36:11 +0200 Subject: [PATCH] C#: Fix Shortcut example - Follow our code-style and conventions. - Match the GDScript example more closely. - Replace `set_events()` method with `events` property. --- doc/classes/Shortcut.xml | 52 +++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/doc/classes/Shortcut.xml b/doc/classes/Shortcut.xml index b63fa813148..3aa77f6f989 100644 --- a/doc/classes/Shortcut.xml +++ b/doc/classes/Shortcut.xml @@ -16,8 +16,8 @@ var key_event = InputEventKey.new() key_event.keycode = KEY_S key_event.ctrl_pressed = true - key_event.command_or_control_autoremap = true # Swaps ctrl for Command on Mac. - save_shortcut.set_events([key_event]) + key_event.command_or_control_autoremap = true # Swaps Ctrl for Command on Mac. + save_shortcut.events = [key_event] func _input(event): if save_shortcut.matches_event(event) and event.is_pressed() and not event.is_echo(): @@ -25,39 +25,35 @@ get_viewport().set_input_as_handled() [/gdscript] [csharp] - public partial class YourScriptName : Godot.Node + using Godot; + + public partial class MyNode : Node + { + private readonly Shortcut _saveShortcut = new Shortcut(); + + public override void _Ready() { - private Godot.Shortcut saveShortcut; - - public override void _Ready() + InputEventKey keyEvent = new InputEventKey { - // Enable input processing explicitly (optional for Node, but included for clarity) - SetProcessInput(true); + Keycode = Key.S, + CtrlPressed = true, + CommandOrControlAutoremap = true, // Swaps Ctrl for Command on Mac. + }; - saveShortcut = new Godot.Shortcut(); + _saveShortcut.Events = [keyEvent]; + } - Godot.InputEventKey keyEvent = new Godot.InputEventKey - { - Keycode = Godot.Key.S, - CtrlPressed = true, - CommandOrControlAutoremap = true - }; - - Godot.Collections.Array<Godot.InputEvent> events = new Godot.Collections.Array<Godot.InputEvent> { keyEvent }; - saveShortcut.SetEvents(events); - } - - public override void _Input(Godot.InputEvent @event) + public override void _Input(InputEvent @event) + { + if (@event is InputEventKey keyEvent && + _saveShortcut.MatchesEvent(@event) && + keyEvent.Pressed && !keyEvent.Echo) { - if (@event is Godot.InputEventKey keyEvent && - saveShortcut.MatchesEvent(@event) && - keyEvent.Pressed && !keyEvent.Echo) - { - Godot.GD.Print("Save shortcut pressed!"); - GetViewport().SetInputAsHandled(); - } + GD.Print("Save shortcut pressed!"); + GetViewport().SetInputAsHandled(); } } + } [/csharp] [/codeblocks]