@@ -67,32 +67,9 @@ local function main_button_handler(this, fields, name, tabdata)
6767
6868 if fields [" srv_worlds" ] ~= nil then
6969 local event = core .explode_textlist_event (fields [" srv_worlds" ])
70-
7170 local selected = core .get_textlist_index (" srv_worlds" )
72- if selected ~= nil then
73- local filename = menudata .worldlist :get_list ()[selected ].path
74- local worldconfig = modmgr .get_worldconfig (filename )
75- filename = filename .. DIR_DELIM .. " world.mt"
76-
77- if worldconfig .creative_mode ~= nil then
78- core .setting_set (" creative_mode" , worldconfig .creative_mode )
79- else
80- local worldfile = Settings (filename )
81- worldfile :set (" creative_mode" , core .setting_get (" creative_mode" ))
82- if not worldfile :write () then
83- core .log (" error" , " Failed to write world config file" )
84- end
85- end
86- if worldconfig .enable_damage ~= nil then
87- core .setting_set (" enable_damage" , worldconfig .enable_damage )
88- else
89- local worldfile = Settings (filename )
90- worldfile :set (" enable_damage" , core .setting_get (" enable_damage" ))
91- if not worldfile :write () then
92- core .log (" error" , " Failed to write world config file" )
93- end
94- end
95- end
71+
72+ menu_worldmt_legacy ()
9673
9774 if event .type == " DCL" then
9875 world_doubleclick = true
@@ -111,28 +88,16 @@ local function main_button_handler(this, fields, name, tabdata)
11188 if fields [" cb_creative_mode" ] then
11289 core .setting_set (" creative_mode" , fields [" cb_creative_mode" ])
11390 local selected = core .get_textlist_index (" srv_worlds" )
114- local filename = menudata .worldlist :get_list ()[selected ].path ..
115- DIR_DELIM .. " world.mt"
91+ menu_worldmt (selected , " creative_mode" , fields [" cb_creative_mode" ])
11692
117- local worldfile = Settings (filename )
118- worldfile :set (" creative_mode" , fields [" cb_creative_mode" ])
119- if not worldfile :write () then
120- core .log (" error" , " Failed to write world config file" )
121- end
12293 return true
12394 end
12495
12596 if fields [" cb_enable_damage" ] then
12697 core .setting_set (" enable_damage" , fields [" cb_enable_damage" ])
12798 local selected = core .get_textlist_index (" srv_worlds" )
128- local filename = menudata .worldlist :get_list ()[selected ].path ..
129- DIR_DELIM .. " world.mt"
99+ menu_worldmt (selected , " enable_damage" , fields [" cb_enable_damage" ])
130100
131- local worldfile = Settings (filename )
132- worldfile :set (" enable_damage" , fields [" cb_enable_damage" ])
133- if not worldfile :write () then
134- core .log (" error" , " Failed to write world config file" )
135- end
136101 return true
137102 end
138103
@@ -159,9 +124,11 @@ local function main_button_handler(this, fields, name, tabdata)
159124
160125 -- update last game
161126 local world = menudata .worldlist :get_raw_element (gamedata .selected_world )
127+ if world then
128+ local game , index = gamemgr .find_by_gameid (world .gameid )
129+ core .setting_set (" menu_last_game" , game .id )
130+ end
162131
163- local game ,index = gamemgr .find_by_gameid (world .gameid )
164- core .setting_set (" menu_last_game" ,game .id )
165132 core .start ()
166133 return true
167134 end
0 commit comments