extends RefCounted class_name ShortcutPolicy ## Esc-Verhalten des Map-Editors (Karte t_c46d31c2, Karte 1/3) — bewusst pure ## Funktion: main.gd fragt pro Esc-Taste ab WELCHE Zustandsänderung fällig ist ## und macht nur noch den Text. tests/test_shortcuts.gd prüft alle Kombos. ## ## Priorität (spec „Esc = Auswahl aufheben / Werkzeug abbrechen / Ghost abbrechen"): ## 1. aktives Sonder-Werkzeug verlassen (Terrain/Spawns/Bauen → Objekt-Werkzeug) ## 2. Ghost-Preview (Platzieren) abbrechen ## 3. Auswahl aufheben ## Rückgabe-Werte: ## "exit_terrain" | "exit_spawns" | "exit_bauen" | "cancel_placement" ## "clear_selection" | "none" static func esc_action(tool_mode: String, placing: bool, has_selection: bool) -> String: if tool_mode == "terrain": return "exit_terrain" if tool_mode == "spawns": return "exit_spawns" if tool_mode == "bauen": return "exit_bauen" if placing: return "cancel_placement" if has_selection: return "clear_selection" return "none"