Skip to content

Comments

New User Setup and Input Overlay#3

Closed
JamesVanBoxtel wants to merge 17 commits intobetafrom
initialSetupAndInputPickerFinal
Closed

New User Setup and Input Overlay#3
JamesVanBoxtel wants to merge 17 commits intobetafrom
initialSetupAndInputPickerFinal

Conversation

@JamesVanBoxtel
Copy link
Owner

  • Language selection setup screen created, shown when language not set
  • Discord information setup screen created, new config for when it has been shown
  • New Input Overlay Scene for picking inputs
  • New controller theme graphics for representing input device type
  • Comprehensive BattleRoom methods for managing players and their input assignments
  • Restore previous assignments in 1P if they have been picked this session
  • Language now defaults to English but not confirmed until picked
  • Set Language method decoupled from saving language to support above
  • InputPromptRenderer for drawing device images and eventually button prompts
  • InputConfiguration has become a full class with device name, image, label etc fully accessible.
  • InputManager manages the input configurations and provides a touch one.
  • Added a second WASD default configuration for when new players don't have any yet and expect to navigate menus with WASD
  • Input Device Overlay is shown in character select when not all human local players are assigned.
  • Added change input device button for changing after you have already assigned
  • Input Config Menu visuals improved, added auto configure joystick
  • Added SceneCoordinator class for auto showing next scenes based on state
  • Added ability for labels to autosize
  • Added ability for menus to size to fit
  • Added a slider menu item
  • Made UIElement properly traverse touch from topmost down
  • Auto show input config on new controller
  • Add way to set TYPE variable on class constructor
  • Added debugging print functions on UIElement
  • Clear previous bindings when reusing key
  • Require all keys bound before exiting config
  • Input manager cleanup

Video showing language picker, discord info, configuring new controller, can't exit till not partially configured.

Screen.Recording.2025-10-31.at.9.20.53.AM.mp4

Endaris and others added 17 commits June 21, 2025 01:34
… cleanup is always reliable and the same and that lobby data is always cleared
…tack#713)

Fixes panel-attack#698

Various problems existed with the style system and classic endless mode and updating settings.
The style wasn't updated all the time, and it wasn't preserved when opening the game again. In addition
style settings could carry over to other game types.

The flow is now this:
UI changes → setLevelData() → levelDataChanged signal → auto-updates style/difficulty/level/UI/config

Each character select subclass knows what difficulty / level / style mean and update accordingly.
The server doesn't need to know about style at all.

* LevelPresets.lua : Added classicEndless presets (5 colors for easy), getStyleAndPreset() to detect which preset a levelData matches
This lets us support more presets later and update the UI to show something reasonable when level data doesn't match a preset.

* Convert GameMode to proper class with methods
* Separate UI style preference from changing level data
* Also fixed a challenge mode JSON serialization crash by using our JSON sanitizer again.
The Debug Settings system provides runtime-configurable debug features through a UI overlay. Settings are persisted to config.debug and can be accessed anywhere via the DebugSettings singleton.

Also provide a way to generate the debug menu and surface it from a debug button.

To support this new button and future overlays, add a root element to the game so we can order overlays

Updated Bool Selector to size correctly
Updated Style Selector creation to make sure sizing and layout is right
Reload main menu when you come back to it
Make navigation stack a UIElement so it works with touch handling

Fixes panel-attack#697
Repost of this commit since it was reverted.

The Debug Settings system provides runtime-configurable debug features through a UI overlay. Settings are persisted to config.debug and can be accessed anywhere via the DebugSettings singleton.

Also provide a way to generate the debug menu and surface it from a debug button.

To support this new button and future overlays, add a root element to the game so we can order overlays

Updated Bool Selector to size correctly
Updated Style Selector creation to make sure sizing and layout is right
Reload main menu when you come back to it
Make navigation stack a UIElement so it works with touch handling

Fixes panel-attack#697
Language selection setup screen created, shown when language not set
Discord information setup screen created, new config for when it has been shown
New Input Overlay Scene for picking inputs
New controller theme graphics for representing input device type
Comprehensive BattleRoom methods for managing players and their input assignments
Restore previous assignments in 1P if they have been picked this session
Language now defaults to English but not confirmed until picked
Set Language method decoupled from saving language to support above
InputPromptRenderer for drawing device images and eventually button prompts
InputConfiguration has become a full class with device name, image, label etc fully accessible.
InputManager manages the input configurations and provides a touch one.
Added a second WASD default configuration for when new players don't have any yet and expect to navigate menus with WASD
Input Device Overlay is shown in character select when not all human local players are assigned.
Added change input device button for changing after you have already assigned
Input Config Menu visuals improved, added auto configure joystick
Added SceneCoordinator class for auto showing next scenes based on state
Added ability for labels to autosize
Added ability for menus to size to fit
Added a slider menu item
Made UIElement properly traverse touch from topmost down
Auto show input config on new controller
Add way to set TYPE variable on class constructor
Added debugging print functions on UIElement
Clear previous bindings when reusing key
Require all keys bound before exiting config
Input manager cleanup
@JamesVanBoxtel JamesVanBoxtel changed the base branch from debugSettingsReborn to beta November 9, 2025 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants