Implement the in-game Help window as a 1:1 migration of uihelp.py's HelpWindow (single-page: ENABLE_HELP_MULTIPAGE = 0 -> LoadDialogSinglePage). - project/ui/help_ui.gd (new): loads the real helpwindow.py uiscript via UiScript -> UiBuild; _relabel() resolves the <HELP_*>/<CLOSE> placeholders (produced when UiManager has no locale callback) from the project Locale table (en) with verbatim English fallbacks, covering the original script's two duplicate help_02 rows (right/middle camera). open/close/toggle/is_open; close_button -> close; ESC handled by the UiManager window stack. - project/ui/system_menu_ui.gd: help_button changed from the placeholder toast to close() + open_help(); adds const HelpUI, an injectable help_ui member, _ensure_help() (lazy build, reuses the menu's ui/client/assets_root), open_help(), toggle_help(); setup() gains an optional 6th arg (old 5-arg callers unaffected). - project/game_scene.gd: single elif in _unhandled_input — KEY_H without ctrl/meta -> system_menu_ui.toggle_help() (Ctrl+H stays free for /user_horse_ride). - project/help_ui_test.gd (new): headless SceneTree test — helpwindow.py load, 19 verbatim help rows + taskbar labels bound and non-placeholder, close_button text, rows() helper, close/open/toggle, ESC stack top, SystemMenuUI.open_help() lazy build. Tests: help_ui_test, system_menu_ui_test, gamescene_test, ui_test all PASS (plus system_option_ui_test, char_status_ui_test). No build/ in this worktree so C++ ctest not run (no C++ change). Real-server and visual (.sub textures) not verified. Docs: CLIENT-GAP.md W3 row + increment 50 bullet; CLIENT-GAP-FIX.md §8.3 status/改动/测试/验收 + C.5 batch record. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014yvAPqPivoY7vmBbzgqK4W
2 lines
20 B
Plaintext
2 lines
20 B
Plaintext
uid://dfoy732rqh7hd
|