1
1
import React , { useState } from "react"
2
2
import Modal , { ModalPropsImpl } from "@/components/Modal"
3
- import { FaGear } from "react-icons/fa6"
4
3
import Label , { LabelSize } from "@/components/Label"
5
4
import Dropdown from "@/components/Dropdown"
6
- import Slider from "@/components/Slider"
7
5
import Checkbox from "@/components/Checkbox"
8
6
import PreferencesSystem from "@/systems/preferences/PreferencesSystem"
9
7
import { SceneOverlayEvent , SceneOverlayEventKey } from "@/ui/components/SceneOverlayEvents"
10
8
import { QualitySetting } from "@/systems/preferences/PreferenceTypes"
11
9
import { Box } from "@mui/material"
12
- import { Spacer } from "@/ui/components/StyledComponents"
10
+ import { Spacer , SynthesisIcons } from "@/ui/components/StyledComponents"
13
11
import World from "@/systems/World"
14
12
15
13
const SettingsModal : React . FC < ModalPropsImpl > = ( { modalId } ) => {
16
14
const [ qualitySettings , setQualitySettings ] = useState < string > (
17
15
PreferencesSystem . getGlobalPreference < string > ( "QualitySettings" )
18
16
)
19
- const [ zoomSensitivity , setZoomSensitivity ] = useState < number > (
17
+
18
+ // Disabled until camera settings are implemented
19
+ /* const [zoomSensitivity, setZoomSensitivity] = useState<number>(
20
20
PreferencesSystem.getGlobalPreference<number>("ZoomSensitivity")
21
21
)
22
22
const [pitchSensitivity, setPitchSensitivity] = useState<number>(
23
23
PreferencesSystem.getGlobalPreference<number>("PitchSensitivity")
24
24
)
25
25
const [yawSensitivity, setYawSensitivity] = useState<number>(
26
26
PreferencesSystem.getGlobalPreference<number>("YawSensitivity")
27
- )
27
+ ) */
28
+
28
29
const [ reportAnalytics , setReportAnalytics ] = useState < boolean > (
29
30
PreferencesSystem . getGlobalPreference < boolean > ( "ReportAnalytics" )
30
31
)
31
- const [ useMetric , setUseMetric ] = useState < boolean > ( PreferencesSystem . getGlobalPreference < boolean > ( "UseMetric" ) )
32
+
33
+ // Disabled until use metric is implemented
34
+ // const [useMetric, setUseMetric] = useState<boolean>(PreferencesSystem.getGlobalPreference<boolean>("UseMetric"))
35
+
32
36
const [ renderScoringZones , setRenderScoringZones ] = useState < boolean > (
33
37
PreferencesSystem . getGlobalPreference < boolean > ( "RenderScoringZones" )
34
38
)
@@ -44,29 +48,32 @@ const SettingsModal: React.FC<ModalPropsImpl> = ({ modalId }) => {
44
48
45
49
const saveSettings = ( ) => {
46
50
PreferencesSystem . setGlobalPreference < string > ( "QualitySettings" , qualitySettings )
47
- PreferencesSystem . setGlobalPreference < number > ( "ZoomSensitivity" , zoomSensitivity )
48
- PreferencesSystem . setGlobalPreference < number > ( "PitchSensitivity" , pitchSensitivity )
49
- PreferencesSystem . setGlobalPreference < number > ( "YawSensitivity" , yawSensitivity )
51
+
50
52
PreferencesSystem . setGlobalPreference < boolean > ( "ReportAnalytics" , reportAnalytics )
51
- PreferencesSystem . setGlobalPreference < boolean > ( "UseMetric" , useMetric )
52
53
PreferencesSystem . setGlobalPreference < boolean > ( "RenderScoringZones" , renderScoringZones )
53
54
PreferencesSystem . setGlobalPreference < boolean > ( "RenderSceneTags" , renderSceneTags )
54
55
PreferencesSystem . setGlobalPreference < boolean > ( "RenderScoreboard" , renderScoreboard )
55
56
PreferencesSystem . setGlobalPreference < boolean > ( "SubsystemGravity" , subsystemGravity )
56
57
58
+ // Disabled until these settings are implemented
59
+ /* PreferencesSystem.setGlobalPreference<number>("ZoomSensitivity", zoomSensitivity)
60
+ PreferencesSystem.setGlobalPreference<number>("PitchSensitivity", pitchSensitivity)
61
+ PreferencesSystem.setGlobalPreference<number>("YawSensitivity", yawSensitivity)
62
+ PreferencesSystem.setGlobalPreference<boolean>("UseMetric", useMetric) */
63
+
57
64
PreferencesSystem . savePreferences ( )
58
65
}
59
66
60
67
return (
61
68
< Modal
62
69
name = "Settings"
63
- icon = { < FaGear /> }
70
+ icon = { SynthesisIcons . GearLarge }
64
71
modalId = { modalId }
65
72
onAccept = { ( ) => {
66
73
saveSettings ( )
67
74
} }
68
75
>
69
- < div className = "flex overflow-y-auto flex-col gap-2 bg-background-secondary rounded-md p-2 max-h-[60vh]" >
76
+ < div className = "flex overflow-y-auto flex-col gap-2 bg-background-secondary rounded-md p-2 max-h-[60vh] min-w-[350px] " >
70
77
< Label size = { LabelSize . Medium } > Screen Settings</ Label >
71
78
< Dropdown
72
79
label = "Quality Settings"
@@ -77,7 +84,9 @@ const SettingsModal: React.FC<ModalPropsImpl> = ({ modalId }) => {
77
84
World . SceneRenderer . ChangeLighting ( selected )
78
85
} }
79
86
/>
80
- { Spacer ( 5 ) }
87
+
88
+ { /* Disabled until these settings are implemented */ }
89
+ { /* {Spacer(5)}
81
90
<Label size={LabelSize.Medium}>Camera Settings</Label>
82
91
<Slider
83
92
min={1}
@@ -106,7 +115,7 @@ const SettingsModal: React.FC<ModalPropsImpl> = ({ modalId }) => {
106
115
format={{ maximumFractionDigits: 2 }}
107
116
onChange={(_, value) => setYawSensitivity(value as number)}
108
117
tooltipText="Moving the camera left and right."
109
- />
118
+ />*/ }
110
119
{ Spacer ( 20 ) }
111
120
< Label size = { LabelSize . Medium } > Preferences</ Label >
112
121
< Box display = "flex" flexDirection = { "column" } >
@@ -118,13 +127,15 @@ const SettingsModal: React.FC<ModalPropsImpl> = ({ modalId }) => {
118
127
} }
119
128
tooltipText = "Record user data such as what robots are spawned and how they are configured. No personal data will be collected."
120
129
/>
121
- < Checkbox
130
+ { /* Disabled until this settings is implemented */ }
131
+ { /* <Checkbox
122
132
label="Use Metric"
123
133
defaultState={PreferencesSystem.getGlobalPreference<boolean>("UseMetric")}
124
134
onClick={checked => {
125
135
setUseMetric(checked)
126
136
}}
127
- />
137
+ tooltipText="Metric measurements. (ex: meters instead of feet)"
138
+ /> */ }
128
139
< Checkbox
129
140
label = "Realistic Subsystem Gravity"
130
141
defaultState = { PreferencesSystem . getGlobalPreference < boolean > ( "SubsystemGravity" ) }
0 commit comments