17
17
18
18
---- ----------------------------------------------------------------------------
19
19
20
- local enabled_all = false
20
+ local enabled_all = false
21
21
22
22
local function modname_valid (name )
23
23
return not name :find (" [^a-z0-9_]" )
24
24
end
25
25
26
26
local function get_formspec (data )
27
-
28
27
local mod = data .list :get_list ()[data .selected_mod ]
29
28
30
29
local retval =
31
30
" size[11.5,7.5,true]" ..
32
31
" label[0.5,0;" .. fgettext (" World:" ) .. " ]" ..
33
32
" label[1.75,0;" .. data .worldspec .name .. " ]"
34
33
35
- if data .hide_gamemods then
36
- retval = retval .. " checkbox[1,6;cb_hide_gamemods;" .. fgettext (" Hide Game" ) .. " ;true]"
37
- else
38
- retval = retval .. " checkbox[1,6;cb_hide_gamemods;" .. fgettext (" Hide Game" ) .. " ;false]"
39
- end
40
-
41
- if data .hide_modpackcontents then
42
- retval = retval .. " checkbox[6,6;cb_hide_mpcontent;" .. fgettext (" Hide mp content" ) .. " ;true]"
43
- else
44
- retval = retval .. " checkbox[6,6;cb_hide_mpcontent;" .. fgettext (" Hide mp content" ) .. " ;false]"
45
- end
46
-
47
34
if mod == nil then
48
35
mod = {name = " " }
49
36
end
50
37
51
38
local hard_deps , soft_deps = modmgr .get_dependencies (mod .path )
52
-
39
+
53
40
retval = retval ..
54
41
" label[0,0.7;" .. fgettext (" Mod:" ) .. " ]" ..
55
42
" label[0.75,0.7;" .. mod .name .. " ]" ..
@@ -62,41 +49,45 @@ local function get_formspec(data)
62
49
" button[3.25,7;2.5,0.5;btn_config_world_save;" .. fgettext (" Save" ) .. " ]" ..
63
50
" button[5.75,7;2.5,0.5;btn_config_world_cancel;" .. fgettext (" Cancel" ) .. " ]"
64
51
65
- if mod ~= nil and mod .name ~= " " and mod .typ ~= " game_mod" then
52
+ if mod and mod .name ~= " " and mod .typ ~= " game_mod" then
66
53
if mod .is_modpack then
67
54
local rawlist = data .list :get_raw_list ()
68
55
69
56
local all_enabled = true
70
- for j = 1 ,# rawlist ,1 do
71
- if rawlist [j ].modpack == mod .name and
72
- rawlist [j ].enabled ~= true then
73
- all_enabled = false
74
- break
57
+ for j = 1 , # rawlist , 1 do
58
+ if rawlist [j ].modpack == mod .name and not rawlist [j ].enabled then
59
+ all_enabled = false
60
+ break
75
61
end
76
62
end
77
63
78
- if all_enabled == false then
79
- retval = retval .. " button[5.5,0.125;2.5,0.5;btn_mp_enable;" .. fgettext (" Enable MP" ) .. " ]"
64
+ if all_enabled then
65
+ retval = retval .. " button[5.5,0.125;2.5,0.5;btn_mp_disable;" ..
66
+ fgettext (" Disable MP" ) .. " ]"
80
67
else
81
- retval = retval .. " button[5.5,0.125;2.5,0.5;btn_mp_disable;" .. fgettext (" Disable MP" ) .. " ]"
68
+ retval = retval .. " button[5.5,0.125;2.5,0.5;btn_mp_enable;" ..
69
+ fgettext (" Enable MP" ) .. " ]"
82
70
end
83
71
else
84
72
if mod .enabled then
85
- retval = retval .. " checkbox[5.5,-0.125;cb_mod_enable;" .. fgettext (" enabled" ) .. " ;true]"
73
+ retval = retval .. " checkbox[5.5,-0.125;cb_mod_enable;" ..
74
+ fgettext (" enabled" ) .. " ;true]"
86
75
else
87
- retval = retval .. " checkbox[5.5,-0.125;cb_mod_enable;" .. fgettext (" enabled" ) .. " ;false]"
76
+ retval = retval .. " checkbox[5.5,-0.125;cb_mod_enable;" ..
77
+ fgettext (" enabled" ) .. " ;false]"
88
78
end
89
79
end
90
80
end
91
- if enabled_all then
81
+ if enabled_all then
92
82
retval = retval ..
93
- " button[8.75,0.125;2.5,0.5;btn_disable_all_mods;" .. fgettext (" Disable all" ) .. " ]" ..
94
- " textlist[5.5,0.75;5.75,5.4;world_config_modlist;"
83
+ " button[8.75,0.125;2.5,0.5;btn_disable_all_mods;" .. fgettext (" Disable all" ) .. " ]"
95
84
else
96
85
retval = retval ..
97
- " button[8.75,0.125;2.5,0.5;btn_enable_all_mods;" .. fgettext (" Enable all" ) .. " ]" ..
98
- " textlist[5.5,0.75;5.75,5.4;world_config_modlist;"
86
+ " button[8.75,0.125;2.5,0.5;btn_enable_all_mods;" .. fgettext (" Enable all" ) .. " ]"
99
87
end
88
+ retval = retval ..
89
+ " tablecolumns[color;tree;text]" ..
90
+ " table[5.5,0.75;5.75,6;world_config_modlist;"
100
91
retval = retval .. modmgr .render_modlist (data .list )
101
92
retval = retval .. " ;" .. data .selected_mod .. " ]"
102
93
@@ -129,16 +120,15 @@ end
129
120
130
121
131
122
local function handle_buttons (this , fields )
132
-
133
123
if fields [" world_config_modlist" ] ~= nil then
134
- local event = core .explode_textlist_event (fields [" world_config_modlist" ])
135
- this .data .selected_mod = event .index
136
- core .setting_set (" world_config_selected_mod" , event .index )
124
+ local event = core .explode_table_event (fields [" world_config_modlist" ])
125
+ this .data .selected_mod = event .row
126
+ core .setting_set (" world_config_selected_mod" , event .row )
137
127
138
128
if event .type == " DCL" then
139
129
enable_mod (this )
140
130
end
141
-
131
+
142
132
return true
143
133
end
144
134
@@ -160,44 +150,7 @@ local function handle_buttons(this, fields)
160
150
return true
161
151
end
162
152
163
- if fields [" cb_hide_gamemods" ] ~= nil or
164
- fields [" cb_hide_mpcontent" ] ~= nil then
165
- local current = this .data .list :get_filtercriteria ()
166
-
167
- if current == nil then
168
- current = {}
169
- end
170
-
171
- if fields [" cb_hide_gamemods" ] ~= nil then
172
- if core .is_yes (fields [" cb_hide_gamemods" ]) then
173
- current .hide_game = true
174
- this .data .hide_gamemods = true
175
- core .setting_set (" world_config_hide_gamemods" , " true" )
176
- else
177
- current .hide_game = false
178
- this .data .hide_gamemods = false
179
- core .setting_set (" world_config_hide_gamemods" , " false" )
180
- end
181
- end
182
-
183
- if fields [" cb_hide_mpcontent" ] ~= nil then
184
- if core .is_yes (fields [" cb_hide_mpcontent" ]) then
185
- current .hide_modpackcontents = true
186
- this .data .hide_modpackcontents = true
187
- core .setting_set (" world_config_hide_modpackcontents" , " true" )
188
- else
189
- current .hide_modpackcontents = false
190
- this .data .hide_modpackcontents = false
191
- core .setting_set (" world_config_hide_modpackcontents" , " false" )
192
- end
193
- end
194
-
195
- this .data .list :set_filtercriteria (current )
196
- return true
197
- end
198
-
199
153
if fields [" btn_config_world_save" ] then
200
-
201
154
local filename = this .data .worldspec .path ..
202
155
DIR_DELIM .. " world.mt"
203
156
@@ -231,7 +184,7 @@ local function handle_buttons(this, fields)
231
184
if not worldfile :write () then
232
185
core .log (" error" , " Failed to write world config file" )
233
186
end
234
-
187
+
235
188
this :delete ()
236
189
return true
237
190
end
@@ -252,7 +205,7 @@ local function handle_buttons(this, fields)
252
205
enabled_all = true
253
206
return true
254
207
end
255
-
208
+
256
209
if fields .btn_disable_all_mods then
257
210
local list = this .data .list :get_raw_list ()
258
211
@@ -269,14 +222,11 @@ local function handle_buttons(this, fields)
269
222
end
270
223
271
224
function create_configure_world_dlg (worldidx )
272
-
273
225
local dlg = dialog_create (" sp_config_world" ,
274
226
get_formspec ,
275
227
handle_buttons ,
276
228
nil )
277
229
278
- dlg .data .hide_gamemods = core .setting_getbool (" world_config_hide_gamemods" )
279
- dlg .data .hide_modpackcontents = core .setting_getbool (" world_config_hide_modpackcontents" )
280
230
dlg .data .selected_mod = tonumber (core .setting_get (" world_config_selected_mod" ))
281
231
if dlg .data .selected_mod == nil then
282
232
dlg .data .selected_mod = 0
@@ -286,14 +236,14 @@ function create_configure_world_dlg(worldidx)
286
236
if dlg .data .worldspec == nil then dlg :delete () return nil end
287
237
288
238
dlg .data .worldconfig = modmgr .get_worldconfig (dlg .data .worldspec .path )
289
-
239
+
290
240
if dlg .data .worldconfig == nil or dlg .data .worldconfig .id == nil or
291
241
dlg .data .worldconfig .id == " " then
292
242
293
243
dlg :delete ()
294
244
return nil
295
245
end
296
-
246
+
297
247
dlg .data .list = filterlist .create (
298
248
modmgr .preparemodlist , -- refresh
299
249
modmgr .comparemod , -- compare
0 commit comments