77-- * Provide a copy of or a link to the original license (GPL-3.0 or later); see LICENSE.md or <https://www.gnu.org/licenses/>.
88
99
10- local ThemeManager = require (" includes.services.ThemeManager" )
11- local selectedTheme = ThemeManager :GetCurrentTheme ()
12- local newThemeBuff = selectedTheme :Copy ()
13- local cfgReset = {
10+ local ThemeManager = require (" includes.services.ThemeManager" )
11+ local selectedTheme
12+ local newThemeBuff
13+
14+ local cfgReset = {
1415 --- @type Set<string>
1516 exceptions = Set .new (" backend.debug_mode" ),
1617 excToggles = {
@@ -23,14 +24,13 @@ local cfgReset = {
2324 },
2425 open = false ,
2526}
26- local themeEditor = {
27+ local themeEditor = {
2728 shouldDraw = false ,
2829 liveEdit = false ,
2930 shouldFocusName = false ,
3031 valid = true ,
3132 errors = {}
3233}
33- newThemeBuff .Name = " "
3434
3535local function onConfigReset ()
3636 for _ , v in pairs (cfgReset .excToggles ) do
@@ -44,29 +44,38 @@ local function drawGeneralSettings()
4444 GVars .backend .auto_cleanup_entities = GUI :CustomToggle (_T (" SETTINGS_ENTITY_REPLACE" ),
4545 GVars .backend .auto_cleanup_entities
4646 )
47- GUI :Tooltip (_T (" SETTINGS_ENTITY_REPLACE_TT" ))
47+ GUI :HelpMarker (_T (" SETTINGS_ENTITY_REPLACE_TT" ))
4848
49- ImGui .Spacing ()
50- ImGui .BulletText (_F (" %s: %s (%s)" , _T (" SETTINGS_LANGUAGE" ), GVars .backend .language_name , GVars .backend .language_code ))
51- ImGui .Spacing ()
49+ if (Translator and Translator :IsReady ()) then
50+ GUI :HeaderText (_T (" SETTINGS_LANGUAGE" ), { separator = true , spacing = true })
5251
53- if ImGui .BeginCombo (" ##langs" , _F (" %s (%s)" ,
54- Translator .locales [GVars .backend .language_index ].name ,
55- Translator .locales [GVars .backend .language_index ].iso
56- )) then
57- for i , lang in ipairs (Translator .locales ) do
58- local is_selected = (i == GVars .backend .language_index )
59- if (ImGui .Selectable (_F (" %s (%s)" , lang .name , lang .iso ), is_selected )) then
60- GVars .backend .language_index = i
61- GVars .backend .language_name = lang .name
62- GVars .backend .language_code = lang .iso
52+ GVars .backend .use_game_language = GUI :CustomToggle (_T (" SETTINGS_GAME_LANGUAGE" ),
53+ GVars .backend .use_game_language ,
54+ { onClick = function () Translator :Reload () end , }
55+ )
56+ GUI :HelpMarker (_T (" SETTINGS_GAME_LANGUAGE_TT" ))
57+
58+ ImGui .Spacing ()
59+ ImGui .BeginDisabled (GVars .backend .use_game_language )
60+ if ImGui .BeginCombo (" ##langs" , _F (" %s (%s)" ,
61+ Translator .locales [GVars .backend .language_index ].name ,
62+ Translator .locales [GVars .backend .language_index ].iso
63+ )) then
64+ for i , lang in ipairs (Translator .locales ) do
65+ local is_selected = (i == GVars .backend .language_index )
66+ if (ImGui .Selectable (_F (" %s (%s)" , lang .name , lang .iso ), is_selected )) then
67+ GVars .backend .language_index = i
68+ GVars .backend .language_name = lang .name
69+ GVars .backend .language_code = lang .iso
70+ end
6371 end
72+ ImGui .EndCombo ()
6473 end
65- ImGui .EndCombo ()
74+ ImGui .EndDisabled ()
6675 end
6776
6877 ImGui .Spacing ()
69-
78+ ImGui . Separator ()
7079 if ImGui .Button (_T (" SETTINGS_CFG_RESET" )) then
7180 cfgReset .open = true
7281 end
@@ -105,11 +114,10 @@ local function drawGeneralSettings()
105114 end , function ()
106115 cfgReset .exceptions :Clear ()
107116 onConfigReset ()
108- end )
117+ end , true )
109118 ImGui .End ()
110119 end
111120 end
112- ImGui .Dummy (1 , 10 )
113121end
114122
115123local function drawThemeSettings ()
@@ -119,7 +127,6 @@ local function drawThemeSettings()
119127
120128 if (ImGui .Begin (" ##new_theme" ,
121129 ImGuiWindowFlags .NoTitleBar
122- | ImGuiWindowFlags .NoMove
123130 | ImGuiWindowFlags .NoResize
124131 | ImGuiWindowFlags .AlwaysAutoResize
125132 )) then
@@ -306,7 +313,8 @@ local function drawGuiSettings()
306313 ImGui .PopStyleVar ()
307314 GUI :ShowWindowHeightLimit ()
308315 end ,
309- ImGui .CloseCurrentPopup
316+ ImGui .CloseCurrentPopup ,
317+ true
310318 )
311319 ImGui .EndPopup ()
312320 end
@@ -346,14 +354,18 @@ local function drawGuiSettings()
346354 end
347355
348356 ImGui .BeginDisabled ()
349- GVars .ui .window_pos .x , _ = ImGui .SliderFloat (_T (" SETTINGS_WINDOW_POS_X" ), GVars .ui .window_pos .x , 0 , resolution .x )
350- GUI :Tooltip (_T (" SETTINGS_WINDOW_POS_TT" ))
351- GVars .ui .window_pos .y , _ = ImGui .SliderFloat (_T (" SETTINGS_WINDOW_POS_Y" ), GVars .ui .window_pos .y , 0 , resolution .y )
357+ GVars .ui .window_pos .x = ImGui .SliderFloat (_T (" SETTINGS_WINDOW_POS_X" ), GVars .ui .window_pos .x , 0 , resolution .x )
358+ ImGui .EndDisabled ()
352359 GUI :Tooltip (_T (" SETTINGS_WINDOW_POS_TT" ))
360+
361+ ImGui .BeginDisabled ()
362+ GVars .ui .window_pos .y = ImGui .SliderFloat (_T (" SETTINGS_WINDOW_POS_Y" ), GVars .ui .window_pos .y , 0 , resolution .y )
353363 ImGui .EndDisabled ()
364+ GUI :Tooltip (_T (" SETTINGS_WINDOW_POS_TT" ))
354365
355366 ImGui .Spacing ()
356367 GUI :HeaderText (_T (" SETTINGS_WINDOW_STYLE" ), { separator = true })
368+ selectedTheme = selectedTheme or ThemeManager :GetCurrentTheme ()
357369
358370 GVars .ui .style .bg_alpha , _ = ImGui .SliderFloat (_T (" SETTINGS_WINDOW_ALPHA" ), GVars .ui .style .bg_alpha , 0.01 , 1.0 )
359371 ImGui .SameLine ()
0 commit comments