@@ -18,13 +18,19 @@ public final class EditorPreferences {
1818
1919 private int codeEditorFontSize ;
2020 private int editorMaxFps = DEFAULT_EDITOR_MAX_FPS ;
21+ private String editorTheme ;
2122 private boolean showWelcomeOnStartup ;
2223 private boolean loadSidebarExtensionsOnDemand ;
24+ private boolean autoSaveBeforeRun ;
25+ private boolean editorRuntimePerfHud ;
2326 private String defaultTextEditor ;
2427 private String customTextEditorCommand ;
2528 private String launcherTheme ;
2629 private boolean launcherRestoreLastProject ;
2730 private String launcherLastProjectPath ;
31+ private boolean launcherKeepOpenAfterEditorLaunch ;
32+ private boolean launcherConfirmRunProject ;
33+ private boolean launcherRuntimePerfHud ;
2834 private final EnumMap <EditorSidebarPanel , EditorPanelPlacement > panelPlacements =
2935 new EnumMap <>(EditorSidebarPanel .class );
3036 private final EnumMap <EditorSidebarPanel , Boolean > chooserVisibility =
@@ -33,37 +39,55 @@ public final class EditorPreferences {
3339 public EditorPreferences () {
3440 this (
3541 DEFAULT_CODE_EDITOR_FONT_SIZE ,
42+ LAUNCHER_THEME_DARK ,
43+ true ,
44+ true ,
3645 true ,
3746 true ,
3847 TEXT_EDITOR_JVN ,
3948 "" ,
4049 LAUNCHER_THEME_DARK ,
4150 true ,
4251 "" ,
52+ false ,
53+ false ,
54+ true ,
4355 EditorSidebarPanel .defaultPlacements (),
4456 EditorSidebarPanel .defaultChooserVisibility ());
4557 }
4658
4759 public EditorPreferences (
4860 int codeEditorFontSize ,
61+ String editorTheme ,
4962 boolean showWelcomeOnStartup ,
5063 boolean loadSidebarExtensionsOnDemand ,
64+ boolean autoSaveBeforeRun ,
65+ boolean editorRuntimePerfHud ,
5166 String defaultTextEditor ,
5267 String customTextEditorCommand ,
5368 String launcherTheme ,
5469 boolean launcherRestoreLastProject ,
5570 String launcherLastProjectPath ,
71+ boolean launcherKeepOpenAfterEditorLaunch ,
72+ boolean launcherConfirmRunProject ,
73+ boolean launcherRuntimePerfHud ,
5674 Map <EditorSidebarPanel , EditorPanelPlacement > placements ,
5775 Map <EditorSidebarPanel , Boolean > chooserVisibility ) {
5876 this .codeEditorFontSize =
5977 clampCodeEditorFontSize (codeEditorFontSize );
78+ this .editorTheme = normalizeTheme (editorTheme );
6079 this .showWelcomeOnStartup = showWelcomeOnStartup ;
6180 this .loadSidebarExtensionsOnDemand = loadSidebarExtensionsOnDemand ;
81+ this .autoSaveBeforeRun = autoSaveBeforeRun ;
82+ this .editorRuntimePerfHud = editorRuntimePerfHud ;
6283 this .defaultTextEditor = normalizeTextEditor (defaultTextEditor );
6384 this .customTextEditorCommand = cleanText (customTextEditorCommand );
6485 this .launcherTheme = normalizeLauncherTheme (launcherTheme );
6586 this .launcherRestoreLastProject = launcherRestoreLastProject ;
6687 this .launcherLastProjectPath = cleanText (launcherLastProjectPath );
88+ this .launcherKeepOpenAfterEditorLaunch = launcherKeepOpenAfterEditorLaunch ;
89+ this .launcherConfirmRunProject = launcherConfirmRunProject ;
90+ this .launcherRuntimePerfHud = launcherRuntimePerfHud ;
6791 panelPlacements .putAll (EditorSidebarPanel .defaultPlacements ());
6892 this .chooserVisibility .putAll (EditorSidebarPanel .defaultChooserVisibility ());
6993 if (placements != null ) {
@@ -105,6 +129,14 @@ public void setEditorMaxFps(int editorMaxFps) {
105129 }
106130 }
107131
132+ public String getEditorTheme () {
133+ return editorTheme ;
134+ }
135+
136+ public void setEditorTheme (String editorTheme ) {
137+ this .editorTheme = normalizeTheme (editorTheme );
138+ }
139+
108140 public boolean isShowWelcomeOnStartup () {
109141 return showWelcomeOnStartup ;
110142 }
@@ -121,6 +153,22 @@ public void setLoadSidebarExtensionsOnDemand(boolean loadSidebarExtensionsOnDema
121153 this .loadSidebarExtensionsOnDemand = loadSidebarExtensionsOnDemand ;
122154 }
123155
156+ public boolean isAutoSaveBeforeRun () {
157+ return autoSaveBeforeRun ;
158+ }
159+
160+ public void setAutoSaveBeforeRun (boolean autoSaveBeforeRun ) {
161+ this .autoSaveBeforeRun = autoSaveBeforeRun ;
162+ }
163+
164+ public boolean isEditorRuntimePerfHud () {
165+ return editorRuntimePerfHud ;
166+ }
167+
168+ public void setEditorRuntimePerfHud (boolean editorRuntimePerfHud ) {
169+ this .editorRuntimePerfHud = editorRuntimePerfHud ;
170+ }
171+
124172 public String getDefaultTextEditor () {
125173 return defaultTextEditor ;
126174 }
@@ -161,6 +209,30 @@ public void setLauncherLastProjectPath(String launcherLastProjectPath) {
161209 this .launcherLastProjectPath = cleanText (launcherLastProjectPath );
162210 }
163211
212+ public boolean isLauncherKeepOpenAfterEditorLaunch () {
213+ return launcherKeepOpenAfterEditorLaunch ;
214+ }
215+
216+ public void setLauncherKeepOpenAfterEditorLaunch (boolean launcherKeepOpenAfterEditorLaunch ) {
217+ this .launcherKeepOpenAfterEditorLaunch = launcherKeepOpenAfterEditorLaunch ;
218+ }
219+
220+ public boolean isLauncherConfirmRunProject () {
221+ return launcherConfirmRunProject ;
222+ }
223+
224+ public void setLauncherConfirmRunProject (boolean launcherConfirmRunProject ) {
225+ this .launcherConfirmRunProject = launcherConfirmRunProject ;
226+ }
227+
228+ public boolean isLauncherRuntimePerfHud () {
229+ return launcherRuntimePerfHud ;
230+ }
231+
232+ public void setLauncherRuntimePerfHud (boolean launcherRuntimePerfHud ) {
233+ this .launcherRuntimePerfHud = launcherRuntimePerfHud ;
234+ }
235+
164236 public EditorPanelPlacement getPlacement (EditorSidebarPanel panel ) {
165237 if (panel == null ) return EditorPanelPlacement .HIDDEN ;
166238 return panelPlacements .getOrDefault (panel , panel .defaultPlacement ());
@@ -192,13 +264,19 @@ public EnumMap<EditorSidebarPanel, Boolean> copyChooserVisibility() {
192264 public EditorPreferences copy () {
193265 EditorPreferences c = new EditorPreferences (
194266 codeEditorFontSize ,
267+ editorTheme ,
195268 showWelcomeOnStartup ,
196269 loadSidebarExtensionsOnDemand ,
270+ autoSaveBeforeRun ,
271+ editorRuntimePerfHud ,
197272 defaultTextEditor ,
198273 customTextEditorCommand ,
199274 launcherTheme ,
200275 launcherRestoreLastProject ,
201276 launcherLastProjectPath ,
277+ launcherKeepOpenAfterEditorLaunch ,
278+ launcherConfirmRunProject ,
279+ launcherRuntimePerfHud ,
202280 panelPlacements ,
203281 chooserVisibility );
204282 c .editorMaxFps = this .editorMaxFps ;
@@ -217,6 +295,14 @@ public static String normalizeTextEditor(String value) {
217295 }
218296
219297 public static String normalizeLauncherTheme (String value ) {
298+ return normalizeTheme (value );
299+ }
300+
301+ public static String normalizeEditorTheme (String value ) {
302+ return normalizeTheme (value );
303+ }
304+
305+ private static String normalizeTheme (String value ) {
220306 String normalized = cleanText (value ).toLowerCase ();
221307 return LAUNCHER_THEME_LIGHT .equals (normalized ) ? LAUNCHER_THEME_LIGHT : LAUNCHER_THEME_DARK ;
222308 }
0 commit comments