Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions [editor]/editor_gui/client/mapsettings_gamemodesettings.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,33 @@ mapsettings.gamemodeSettings = {}
local valueWidget
local isHandled
addEventHandler ( "doLoadEDF", root,
function(tableEDF, resource)
function(tableEDF, resource, isMapLoading)
--store all our data neatly under the resource
edfSettings[resource] = tableEDF["settings"]
refreshGamemodeSettings()
--send back the intepreted gui table so the server knows the settings !!Lazy, server could interpret this info or only one client could send it
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
currentMapSettings.rowData = rowData
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
-- prevent edf from overwriting map settings while the map is being loaded
if not isMapLoading then
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
currentMapSettings.rowData = rowData
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
end
end )

addEventHandler ( "doUnloadEDF", root,
function(resource)
function(resource, isMapLoading)
--store all our data neatly under the resource
edfSettings[resource] = nil
refreshGamemodeSettings()
--send back the intepreted gui table so the server knows the settings !!Lazy, server could interpret this info or only one client could send it
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
currentMapSettings.rowData = rowData
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
-- prevent edf from overwriting map settings while the map is being loaded
if not isMapLoading then
mapsettings.gamemodeSettings = copyTable ( mapsettings.rowValues )
currentMapSettings.rowData = rowData
currentMapSettings.gamemodeSettings = mapsettings.gamemodeSettings
triggerServerEvent ( "doSaveMapSettings", localPlayer, currentMapSettings, true )
end
end )

function refreshGamemodeSettings()
Expand Down
9 changes: 6 additions & 3 deletions [editor]/editor_main/server/EDFhandler.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ function registerEDF( resource )
loadedEDF[resource] = edf.edfGetDefinition(resource)
for i, player in ipairs(getElementsByType"player") do
if clientGUILoaded[player] then
triggerClientEvent ( player, "doLoadEDF", root, loadedEDF[resource], getResourceName ( resource ) )
local isMapLoading = isEditorOpeningResource()
triggerClientEvent ( player, "doLoadEDF", root, loadedEDF[resource], getResourceName ( resource ), isMapLoading )
end
end
end
Expand All @@ -45,7 +46,8 @@ addEventHandler ( "onEDFUnload", root,
loadedEDF[resource] = nil
for i, player in ipairs(getElementsByType"player") do
if clientGUILoaded[player] then
triggerClientEvent ( player, "doUnloadEDF", root, getResourceName ( resource ) )
local isMapLoading = isEditorOpeningResource()
triggerClientEvent ( player, "doUnloadEDF", root, getResourceName ( resource ), isMapLoading )
end
end
end
Expand All @@ -54,7 +56,8 @@ addEventHandler ( "onEDFUnload", root,
local function sendEDF()
clientGUILoaded[source] = true
for resource, resourceDefinition in pairs(loadedEDF) do
triggerClientEvent ( source, "doLoadEDF", root, resourceDefinition, getResourceName ( resource ) )
local isMapLoading = isEditorOpeningResource()
triggerClientEvent ( source, "doLoadEDF", root, resourceDefinition, getResourceName ( resource ), isMapLoading )
end
end
addEventHandler ( "onClientGUILoaded", root, sendEDF)
Expand Down