From da1c491a0983e09a1c2e425a3d80f45261aa01f4 Mon Sep 17 00:00:00 2001 From: teatov Date: Sat, 2 Aug 2025 18:28:15 +1000 Subject: [PATCH] add limit to key requests --- scripts/game_keyboard.gd | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/game_keyboard.gd b/scripts/game_keyboard.gd index c0ff5ee..a68d423 100644 --- a/scripts/game_keyboard.gd +++ b/scripts/game_keyboard.gd @@ -37,6 +37,7 @@ var prompt_pages_total: int = 0 var _rot_sod: SecondOrderDynamics var _requested_keys: Array[GameKey] = [] +var _requested_keys_limit: int = 0 @onready var _gap_to_size_ratio: float @onready var _pressing_lean_rad := Vector2( @@ -116,17 +117,23 @@ func emit_key_press(game_key: GameKey, event: InputEventKey) -> void: key_press_changed.emit(game_key, event) -func request_keys(filter_func: Callable) -> Array[GameKey]: +func request_keys(filter_func: Callable, limit: int = 0) -> Array[GameKey]: _requested_keys = [] + _requested_keys_limit = limit + keys_requested.emit(filter_func) var requested_keys := _requested_keys + _requested_keys = [] + _requested_keys_limit = 0 + requested_keys.sort_custom(GameKey.sort_func) return requested_keys func key_request_respond(game_key: GameKey) -> void: - _requested_keys.append(game_key) + if _requested_keys_limit == 0 or _requested_keys.size() < _requested_keys_limit: + _requested_keys.append(game_key) #endregion