Files
stickman/content/props/end_table.prop
T
ryan 1d4a71525a 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.
2026-10-09 23:11:34 -04:00

1042 lines
16 KiB
Plaintext

{
"version": "1.0",
"prop_name": "End Table",
"material_preset": "wood",
"anchors": {
"origin": {
"x": 0.0,
"y": 0.0,
"role": "pivot",
"rotation_deg": 0.0,
"allowed_hands": "both",
"z_index_offset": 0
}
},
"metadata": {
"created_at": "2026-10-09T19:39:33",
"modified_at": "2026-10-09T19:39:33"
},
"shapes": [
{
"shape_type": "polygon",
"points": [
{
"x": -104,
"y": -110
},
{
"x": -83,
"y": -110
},
{
"x": -83,
"y": 132
},
{
"x": -104,
"y": 132
}
],
"fill_color": "#AC957EFF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 23,
"y": -142
},
{
"x": 44,
"y": -142
},
{
"x": 44,
"y": 105
},
{
"x": 23,
"y": 105
}
],
"fill_color": "#A88B71FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -100,
"y": -12
},
{
"x": 32,
"y": -42
},
{
"x": 113,
"y": -9
},
{
"x": -20,
"y": 23
}
],
"fill_color": "#AF907AFF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -100,
"y": 69
},
{
"x": 32,
"y": 39
},
{
"x": 113,
"y": 72
},
{
"x": -20,
"y": 104
}
],
"fill_color": "#C0A184FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -100,
"y": 69
},
{
"x": -20,
"y": 104
},
{
"x": -20,
"y": 119
},
{
"x": -100,
"y": 84
}
],
"fill_color": "#D9C4A6FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -20,
"y": 104
},
{
"x": 113,
"y": 72
},
{
"x": 113,
"y": 87
},
{
"x": -20,
"y": 119
}
],
"fill_color": "#EBD8B5FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -100,
"y": -12
},
{
"x": -20,
"y": 23
},
{
"x": -20,
"y": 38
},
{
"x": -100,
"y": 3
}
],
"fill_color": "#D9C4A6FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -20,
"y": 23
},
{
"x": 113,
"y": -9
},
{
"x": 113,
"y": 6
},
{
"x": -20,
"y": 38
}
],
"fill_color": "#EBD8B5FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -100,
"y": -105
},
{
"x": -20,
"y": -73
},
{
"x": -20,
"y": -13
},
{
"x": -100,
"y": -46
}
],
"fill_color": "#B49A82FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -20,
"y": -73
},
{
"x": 113,
"y": -105
},
{
"x": 113,
"y": -47
},
{
"x": -20,
"y": -13
}
],
"fill_color": "#347E91FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -12,
"y": -66
},
{
"x": 105,
"y": -94
},
{
"x": 105,
"y": -53
},
{
"x": -12,
"y": -24
}
],
"fill_color": "#B3D1E4FF",
"outline_color": "#30213DFF",
"outline_width": 2.5,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -12,
"y": -66
},
{
"x": -6,
"y": -60
},
{
"x": 99,
"y": -85
},
{
"x": 105,
"y": -94
}
],
"fill_color": "#E9F6F9FF",
"outline_color": "#E9F6F9FF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -12,
"y": -24
},
{
"x": 105,
"y": -53
},
{
"x": 99,
"y": -59
},
{
"x": -6,
"y": -34
}
],
"fill_color": "#65ADBDFF",
"outline_color": "#65ADBDFF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -32,
"y": -76
},
{
"x": -18,
"y": -70
},
{
"x": -18,
"y": 160
},
{
"x": -32,
"y": 166
},
{
"x": -48,
"y": 159
},
{
"x": -48,
"y": -82
}
],
"fill_color": "#E5CDA9FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -48,
"y": -82
},
{
"x": -32,
"y": -76
},
{
"x": -32,
"y": 166
},
{
"x": -48,
"y": 159
}
],
"fill_color": "#B39B81FF",
"outline_color": "#30213DFF",
"outline_width": 2,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -28,
"y": -67
},
{
"x": -22,
"y": -69
},
{
"x": -22,
"y": 154
},
{
"x": -28,
"y": 156
}
],
"fill_color": "#FFF0CEFF",
"outline_color": "#FFF0CEFF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 105,
"y": -107
},
{
"x": 123,
"y": -111
},
{
"x": 123,
"y": 132
},
{
"x": 106,
"y": 138
},
{
"x": 96,
"y": 133
},
{
"x": 96,
"y": -104
}
],
"fill_color": "#DEC7A7FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 96,
"y": -104
},
{
"x": 106,
"y": -107
},
{
"x": 106,
"y": 138
},
{
"x": 96,
"y": 133
}
],
"fill_color": "#A98E79FF",
"outline_color": "#30213DFF",
"outline_width": 2,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 112,
"y": -99
},
{
"x": 117,
"y": -100
},
{
"x": 117,
"y": 127
},
{
"x": 112,
"y": 129
}
],
"fill_color": "#FFF0CEFF",
"outline_color": "#FFF0CEFF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -115,
"y": -125
},
{
"x": -28,
"y": -89
},
{
"x": -28,
"y": -72
},
{
"x": -115,
"y": -108
}
],
"fill_color": "#D83751FF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -28,
"y": -89
},
{
"x": 131,
"y": -126
},
{
"x": 131,
"y": -109
},
{
"x": -28,
"y": -72
}
],
"fill_color": "#E72F4AFF",
"outline_color": "#30213DFF",
"outline_width": 3,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -115,
"y": -125
},
{
"x": 42,
"y": -158
},
{
"x": 131,
"y": -126
},
{
"x": -28,
"y": -89
}
],
"fill_color": "#CDBEA7FF",
"outline_color": "#30213DFF",
"outline_width": 4,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": -104,
"y": -125
},
{
"x": 41,
"y": -151
},
{
"x": 118,
"y": -126
},
{
"x": -27,
"y": -96
}
],
"fill_color": "#DFD0B9FF",
"outline_color": "#DFD0B9FF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 57.0,
"y": -56.0
},
{
"x": 56.693,
"y": -53.671
},
{
"x": 55.794,
"y": -51.5
},
{
"x": 54.364,
"y": -49.636
},
{
"x": 52.5,
"y": -48.206
},
{
"x": 50.329,
"y": -47.307
},
{
"x": 48.0,
"y": -47.0
},
{
"x": 45.671,
"y": -47.307
},
{
"x": 43.5,
"y": -48.206
},
{
"x": 41.636,
"y": -49.636
},
{
"x": 40.206,
"y": -51.5
},
{
"x": 39.307,
"y": -53.671
},
{
"x": 39.0,
"y": -56.0
},
{
"x": 39.307,
"y": -58.329
},
{
"x": 40.206,
"y": -60.5
},
{
"x": 41.636,
"y": -62.364
},
{
"x": 43.5,
"y": -63.794
},
{
"x": 45.671,
"y": -64.693
},
{
"x": 48.0,
"y": -65.0
},
{
"x": 50.329,
"y": -64.693
},
{
"x": 52.5,
"y": -63.794
},
{
"x": 54.364,
"y": -62.364
},
{
"x": 55.794,
"y": -60.5
},
{
"x": 56.693,
"y": -58.329
}
],
"fill_color": "#D72E4CFF",
"outline_color": "#30213DFF",
"outline_width": 2.5,
"closed": true,
"vertex_flags": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reshaped": true
},
{
"shape_type": "polygon",
"points": [
{
"x": 48.0,
"y": -59.0
},
{
"x": 47.898,
"y": -58.224
},
{
"x": 47.598,
"y": -57.5
},
{
"x": 47.121,
"y": -56.879
},
{
"x": 46.5,
"y": -56.402
},
{
"x": 45.776,
"y": -56.102
},
{
"x": 45.0,
"y": -56.0
},
{
"x": 44.224,
"y": -56.102
},
{
"x": 43.5,
"y": -56.402
},
{
"x": 42.879,
"y": -56.879
},
{
"x": 42.402,
"y": -57.5
},
{
"x": 42.102,
"y": -58.224
},
{
"x": 42.0,
"y": -59.0
},
{
"x": 42.102,
"y": -59.776
},
{
"x": 42.402,
"y": -60.5
},
{
"x": 42.879,
"y": -61.121
},
{
"x": 43.5,
"y": -61.598
},
{
"x": 44.224,
"y": -61.898
},
{
"x": 45.0,
"y": -62.0
},
{
"x": 45.776,
"y": -61.898
},
{
"x": 46.5,
"y": -61.598
},
{
"x": 47.121,
"y": -61.121
},
{
"x": 47.598,
"y": -60.5
},
{
"x": 47.898,
"y": -59.776
}
],
"fill_color": "#FFE3DBFF",
"outline_color": "#FFE3DBFF",
"outline_width": 0,
"closed": true,
"vertex_flags": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"reshaped": true
}
]
}