@@ -33,6 +33,8 @@ import com.lambda.gui.components.SettingsWidget.buildConfigSettingsContext
3333import com.lambda.gui.dsl.ImGuiBuilder
3434import com.lambda.module.ModuleRegistry
3535import com.lambda.module.tag.ModuleTag
36+ import com.lambda.network.LambdaAPI
37+ import com.lambda.network.NetworkManager
3638import com.lambda.threading.runSafe
3739import com.lambda.util.Communication.info
3840import com.lambda.util.Diagnostics.gatherDiagnostics
@@ -100,15 +102,43 @@ object MenuBar {
100102 }
101103
102104 private fun ImGuiBuilder.buildLambdaMenu () {
103- menuItem(" New Profile..." , enabled = false ) {
104- // ToDo (New Profile):
105- // - Open a modal "New Profile" with:
106- // [Profile Name] text input
107- // [Template] combo: Empty / Recommended Defaults / Copy from Current
108- // [Include HUD Layout] checkbox
109- // - On Create: instantiate and activate the profile, optionally copying values from current.
110- // - On Cancel: close modal with no changes.
105+ menu(" Safe Config..." ) {
106+ menuItem(" Save All Configs" ) {
107+ Configuration .configurations.forEach { it.trySave(true ) }
108+ info(" Saved ${Configuration .configurations.size} configuration files." )
109+ }
110+ Configuration .configurations.forEach { config ->
111+ menuItem(" Save ${config.configName} " ) {
112+ config.trySave(true )
113+ info(" Saved ${config.configName} " )
114+ }
115+ }
116+ }
117+ menu(" Load Config..." ) {
118+ menuItem(" Load All Configs" ) {
119+ Configuration .configurations.forEach { it.tryLoad() }
120+ info(" Loaded ${Configuration .configurations.size} configuration files." )
121+ }
122+ Configuration .configurations.forEach { config ->
123+ menuItem(" Load ${config.configName} " ) {
124+ config.tryLoad()
125+ info(" Loaded ${config.configName} " )
126+ }
127+ }
128+ }
129+ separator()
130+ menu(" Settings" ) {
131+ menu(" HUD Settings" ) {
132+ buildConfigSettingsContext(HudGuiLayout )
133+ }
134+ menu(" GUI Settings" ) {
135+ buildConfigSettingsContext(ClickGuiLayout )
136+ }
137+ menu(" Lambda API Settings" ) {
138+ buildConfigSettingsContext(LambdaAPI )
139+ }
111140 }
141+ separator()
112142 menu(" Open Folder" ) {
113143 menuItem(" Open Lambda Folder" ) {
114144 Util .getOperatingSystem().open(FolderRegister .lambda)
@@ -136,15 +166,15 @@ object MenuBar {
136166 }
137167 }
138168 separator()
139- menuItem(" Save Configs" ) {
140- Configuration .configurations.forEach { it.trySave(true ) }
141- info(" Saved ${Configuration .configurations.size} configuration files." )
142- }
143- menuItem(" Load Configs" ) {
144- Configuration .configurations.forEach { it.tryLoad() }
145- info(" Loaded ${Configuration .configurations.size} configuration files." )
169+ menuItem(" New Profile..." , enabled = false ) {
170+ // ToDo (New Profile):
171+ // - Open a modal "New Profile" with:
172+ // [Profile Name] text input
173+ // [Template] combo: Empty / Recommended Defaults / Copy from Current
174+ // [Include HUD Layout] checkbox
175+ // - On Create: instantiate and activate the profile, optionally copying values from current.
176+ // - On Cancel: close modal with no changes.
146177 }
147- separator()
148178 menuItem(" Import Profile..." , enabled = false ) {
149179 // ToDo (Import Profile):
150180 // - Show a file picker for profile file(s).
@@ -189,6 +219,9 @@ object MenuBar {
189219 menuItem(" About..." ) {
190220 aboutRequested = true
191221 }
222+ menuItem(" Developer Mode" , selected = ClickGuiLayout .developerMode) {
223+ ClickGuiLayout .developerMode = ! ClickGuiLayout .developerMode
224+ }
192225 separator()
193226 menuItem(" Close GUI" , " Esc" ) { LambdaScreen .close() }
194227 menuItem(" Exit Client" ) { mc.scheduleStop() }
0 commit comments