Implement Phase 17a Prop Roles UI/UX Specification and associated functionality

- Added UI/UX specification for prop roles and set down mechanics in phase 17a.
- Created `PropStageRoles` script to manage normalized behavior for props, including depth, motion, and collision settings.
- Introduced `StagePhysicsPolicy` for shared physics configurations related to props and actors.
- Developed comprehensive tests for prop roles, including default settings, legacy migration, serialization, and runtime behavior.
- Ensured proper handling of set down actions, including clearance and orientation preservation.
This commit is contained in:
2026-10-09 23:11:34 -04:00
parent 3f66cc3195
commit 1d4a71525a
52 changed files with 20051 additions and 109 deletions
+64 -1
View File
@@ -120,6 +120,64 @@
"drag_threshold": 8,
"selected_border_width": 3
},
"stage_panels": {
"shell": {
"preferred_width": 380,
"edge_inset": 12,
"padding": 12,
"header_gap": 8,
"section_gap": 12,
"corner_radius": 10,
"surface_color": "#252B38FA",
"border_color": "#FFFFFF33"
},
"type": {
"title_size": 24,
"section_size": 20,
"body_size": 20,
"helper_size": 16,
"text_color": "#F5F7FA",
"muted_text_color": "#AAB2C0"
},
"choice": {
"minimum_height": 56,
"row_gap": 6,
"neutral_surface": "#171B24",
"hover_surface": "#303A4B",
"selected_surface": "#12394A",
"disabled_surface": "#252B38",
"border_color": "#FFFFFF33"
},
"toggle": {
"minimum_height": 64,
"help_minimum_height": 72,
"row_padding": 12,
"switch_width": 64,
"switch_height": 34,
"knob_size": 26,
"neutral_surface": "#202633",
"hover_surface": "#2B3442",
"selected_surface": "#173443",
"disabled_surface": "#252B38",
"border_color": "#FFFFFF33",
"switch_on_color": "#22C6FF",
"switch_off_color": "#4A5362",
"switch_disabled_color": "#3B414D",
"knob_color": "#F5F7FA"
},
"action": {
"min_target_size": 48,
"close_width": 88,
"surface_color": "#171B24",
"hover_surface": "#303A4B",
"selected_surface": "#12394A"
},
"prop": {
"stickman_cue_color": "#F5F7FA",
"prop_cue_color": "#B7824D",
"cue_outline_color": "#171B24"
}
},
"overlays": {
"style_defaults": { "line_width": 2, "dash_length": 8, "dash_gap": 5 },
"terrain_guide": { "color": "#22C6FF" },
@@ -127,7 +185,12 @@
"completed_path_color": "#959EAD",
"valid": { "color": "#4DE66680" },
"same_type": { "color": "#FFFFFF26" },
"invalid": { "color": "#FF4D4D80" }
"invalid": { "color": "#FF4D4D80" },
"set_down": {
"unknown_color": "#C5CAD4",
"reach_color": "#FFB300",
"ghost_alpha": 0.36
}
},
"widgets": {
"swatches": [