add blueprints

This commit is contained in:
Lefteris Notas
2026-05-19 13:22:27 +03:00
parent f71bc678b2
commit 411edea8ce
138 changed files with 23330 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
# WBP_SettingsMenu — Widget (Settings Menu)
**Parent:** `UUserWidget`
**Used by:** `SS_UIManager.PushMenu("SettingsMenu")`
**Depends On:** `SS_UIManager`, `SS_SettingsSystem`
---
### Purpose
Full settings screen with sections: Audio, Video/Graphics, Gameplay, Controls, Accessibility.
### Enums (local or global)
```cpp
E_SettingsTab
{
Audio,
Video,
Gameplay,
Controls,
Accessibility
}
```
### Variables
| Name | Type | Description |
|------|------|-------------|
| `ActiveTab` | `E_SettingsTab` | Currently visible tab |
| `TabButtons` | Array of `Button` | Tab navigation buttons |
| `TabPanels` | Array of `PanelWidget` | Tab content panels |
**Audio Tab Children:**
| Name | Type | Description |
|------|------|-------------|
| `MasterVolumeSlider` | `Slider` | 0-100 |
| `SFXVolumeSlider` | `Slider` | 0-100 |
| `MusicVolumeSlider` | `Slider` | 0-100 |
| `VoiceVolumeSlider` | `Slider` | 0-100 |
| `SubtitlesToggle` | `CheckBox` | On/Off |
**Video Tab Children:**
| Name | Type | Description |
|------|------|-------------|
| `ResolutionDropdown` | `ComboBoxString` | Available resolutions |
| `WindowModeDropdown` | `ComboBoxString` | Fullscreen, Windowed, Borderless |
| `VSyncToggle` | `CheckBox` | On/Off |
| `QualityPresetDropdown` | `ComboBoxString` | Low, Medium, High, Epic |
| `BrightnessSlider` | `Slider` | 0.5-2.0 gamma |
**Gameplay Tab Children:**
| Name | Type | Description |
|------|------|-------------|
| `InvertYAxisToggle` | `CheckBox` | On/Off |
| `SensitivitySlider` | `Slider` | Mouse sensitivity 0.1-5.0 |
| `HoldDurationToggle` | `CheckBox` | Tap vs Hold for interactions |
| `AutoPickupToggle` | `CheckBox` | On/Off |
| `CrosshairToggle` | `CheckBox` | Show crosshair |
**Controls Tab Children:**
| Name | Type | Description |
|------|------|-------------|
| `ActionMappingsList` | `ListView` | Key binding rows |
| `ResetDefaultsButton` | `Button` | Reset all bindings |
**Accessibility Tab Children:**
| Name | Type | Description |
|------|------|-------------|
| `SubtitleSizeDropdown` | `ComboBoxString` | Small, Medium, Large |
| `SubtitleBackgroundOpacity` | `Slider` | 0-100% |
| `ColorblindModeDropdown` | `ComboBoxString` | None, Protanopia, Deuteranopia, Tritanopia |
| `HighContrastUIToggle` | `CheckBox` | On/Off |
| `CameraShakeIntensity` | `Slider` | 0-100% |
| `MotionBlurToggle` | `CheckBox` | On/Off |
### Functions
| Name | Inputs | Outputs | Description |
|------|--------|---------|-------------|
| `OnConstruct` | — | — | Populate dropdowns from system, load saved settings |
| `SwitchTab` | Tab: `E_SettingsTab` | — | Show selected panel, hide others |
| `OnSettingChanged` | SettingName: FName, Value: Generic | — | Write to SS_SettingsSystem |
| `SaveSettings` | — | — | SS_SettingsSystem.SaveToDisk |
| `ApplyVideoSettings` | — | — | Apply resolution, window mode, quality |
| `ResetToDefaults` | — | — | Load default values, re-populate UI |
| `OnBack` | — | — | SaveSettings, SS_UIManager.PopMenu |
| `RebindKey` | ActionName: FName | — | Listen for next key press, map to action |
### Communications With
| Target System | Method | Why |
|--------------|--------|-----|
| [`SS_UIManager`](44_SS_UIManager.md) | Push/Pop | Menu lifecycle |
| `SS_SettingsSystem` | Function calls | Read/write settings |
### Reuse Notes
- The tab panel pattern can be extended for mod settings or developer menus by adding new tab entries
- Split from original bundled `36_WBP_MenuWidgets.md` per Clean Slate refactoring plan