Commit Graph

4 Commits

Author SHA1 Message Date
Daniel Samson 845e155719
defensive get_locale + focus tab strip when options menu becomes visible
get_locale() now falls back to TranslationServer.get_locale() if the
locale key is missing from _state, avoiding a crash when the options
autoload hasn't run _ready yet (e.g. another autoload triggers it
during its own _ready).

When the options menu becomes visible, focus moves to the TabContainer
so keyboard/gamepad navigation between tabs works without a click.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 23:54:16 +01:00
Daniel Samson 058bb91383
remove control_icon assets and input_controls, fix typos
- Drop assets/control_icons/* and src/input_controls/* — control
  prompt rendering is now handled by the gd-controls plugin via
  PromptFont, making these PNG sprite sheets redundant.
- Fix typos: _initilize -> _initialize in audio.gd, decebels ->
  decibels (8x in audio_settings.gd parameters and a comment).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 00:15:10 +01:00
Daniel Samson f0f8bdfafb
add reusable options menu plugin with localized UI
- Settings autoloads (Game/Input/Graphics/Audio) backed by FileManager,
  persisted to user:// JSON files
- OptionsMenu scene with tabs wired to each autoload: Game (locale),
  Input (invert vertical axis), Graphics (window mode, borderless,
  screen), Audio (master/music/fx volume)
- GraphicsSettings reads DisplayServer state when running in editor
  to avoid clobbering the editor's window mode; exported builds load
  from disk and apply via set_screen_and_apply with a _loading guard
  to suppress redundant writes
- Built-in translations for en/es/fr/de/ja/zh_CN registered at runtime
  from translations/gd_options.csv
- Control-prompt icon assets for keyboard, PlayStation, Xbox, Nintendo
- Flesh out README with scope and audio bus layout requirement

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 18:06:45 +01:00
Daniel Samson 810e5a6da0 Initial commit 2026-04-28 09:25:05 +00:00