@@ -61,7 +61,8 @@ function save(
61
61
selectedRobot : MirabufSceneObject ,
62
62
selectedNode ?: RigidNodeId ,
63
63
showZoneAlways ?: boolean ,
64
- maxPieces ?: number
64
+ maxPieces ?: number ,
65
+ animationDuration ?: number
65
66
) {
66
67
if ( ! selectedRobot ?. intakePreferences || ! gizmo ) {
67
68
return
@@ -92,6 +93,7 @@ function save(
92
93
}
93
94
94
95
selectedRobot . intakePreferences . maxPieces = maxPieces !
96
+ selectedRobot . intakePreferences . animationDuration = animationDuration !
95
97
96
98
PreferencesSystem . savePreferences ( )
97
99
}
@@ -110,16 +112,18 @@ const ConfigureGamepiecePickupInterface: React.FC<ConfigPickupProps> = ({ select
110
112
const [ zoneSize , setZoneSize ] = useState < number > ( ( MIN_ZONE_SIZE + MAX_ZONE_SIZE ) / 2.0 )
111
113
const [ showZoneAlways , setShowZoneAlways ] = useState < boolean > ( false )
112
114
const [ maxPieces , setMaxPieces ] = useState < number > ( selectedRobot . intakePreferences ?. maxPieces || 1 )
113
- const [ animationDuration , setAnimationDuration ] = useState < number > ( EjectableSceneObject . getAnimationDuration ( ) )
115
+ const [ animationDuration , setAnimationDuration ] = useState < number > (
116
+ selectedRobot . intakePreferences ?. animationDuration || 0.5
117
+ )
114
118
115
119
const gizmoRef = useRef < GizmoSceneObject | undefined > ( undefined )
116
120
117
121
const saveEvent = useCallback ( ( ) => {
118
122
if ( gizmoRef . current && selectedRobot ) {
119
- save ( zoneSize , gizmoRef . current , selectedRobot , selectedNode , showZoneAlways , maxPieces )
123
+ save ( zoneSize , gizmoRef . current , selectedRobot , selectedNode , showZoneAlways , maxPieces , animationDuration )
120
124
selectedRobot . updateIntakeSensor ( )
121
125
}
122
- } , [ selectedRobot , selectedNode , zoneSize , showZoneAlways , maxPieces ] )
126
+ } , [ selectedRobot , selectedNode , zoneSize , showZoneAlways , maxPieces , animationDuration ] )
123
127
124
128
useEffect ( ( ) => {
125
129
ConfigurationSavedEvent . listen ( saveEvent )
@@ -198,9 +202,11 @@ const ConfigureGamepiecePickupInterface: React.FC<ConfigPickupProps> = ({ select
198
202
setSelectedNode ( selectedRobot . intakePreferences . parentNode )
199
203
setMaxPieces ( selectedRobot . intakePreferences . maxPieces )
200
204
setShowZoneAlways ( selectedRobot . intakePreferences . showZoneAlways ?? false )
205
+ setAnimationDuration ( selectedRobot . intakePreferences . animationDuration ?? 0.5 )
201
206
} else {
202
207
setSelectedNode ( undefined )
203
208
setShowZoneAlways ( false )
209
+ setAnimationDuration ( 0.5 )
204
210
}
205
211
} , [ selectedRobot ] )
206
212
@@ -260,7 +266,7 @@ const ConfigureGamepiecePickupInterface: React.FC<ConfigPickupProps> = ({ select
260
266
< Slider
261
267
min = { MIN_ANIMATION_DURATION }
262
268
max = { MAX_ANIMATION_DURATION }
263
- value = { animationDuration }
269
+ value = { animationDuration ?? 0.5 }
264
270
onChange = { ( _ , v ) => {
265
271
const val = typeof v === "number" ? v : v [ 0 ]
266
272
setAnimationDuration ( val )
@@ -353,6 +359,7 @@ const ConfigureGamepiecePickupInterface: React.FC<ConfigPickupProps> = ({ select
353
359
setZoneSize ( 0.5 )
354
360
setSelectedNode ( selectedRobot ?. rootNodeId )
355
361
setMaxPieces ( selectedRobot . intakePreferences ?. maxPieces ?? 1 )
362
+ setAnimationDuration ( 0.5 )
356
363
} }
357
364
/>
358
365
</ >
0 commit comments