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
14 changes: 11 additions & 3 deletions [editor]/editor_gui/client/save.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ function createSaveDialog()
saveDialog.mapsList = guiCreateGridList ( 0.02, 0.08, 0.98, 0.75, true, saveDialog.window )
saveDialog.save = guiCreateButton ( 0.780357142, 0.85388845, 0.22857142, 0.05555555, "Save", true, saveDialog.window )
saveDialog.cancel = guiCreateButton ( 0.780357142, 0.919444, 0.22857142, 0.05555555, "Cancel", true, saveDialog.window )
saveDialog.mapName = guiCreateEdit ( 0.02, 0.87388845, 0.75, 0.08, "", true, saveDialog.window )
saveDialog.mapNameLabel = guiCreateLabel ( 0.3, 0.835, 0.45, 0.05555555, "Map Name:", true, saveDialog.window )
guiLabelSetVerticalAlign(saveDialog.mapNameLabel, 'center')
saveDialog.mapName = guiCreateEdit ( 0.3, 0.9, 0.45, 0.08, "", true, saveDialog.window )
saveDialog.directoryLabel = guiCreateLabel ( 0.02, 0.835, 0.25, 0.05555555, "Output Directory:", true, saveDialog.window )
guiLabelSetVerticalAlign(saveDialog.directoryLabel, 'center')
saveDialog.directory = guiCreateEdit ( 0.02, 0.9, 0.25, 0.08, "", true, saveDialog.window )
--
guiGridListAddColumn ( saveDialog.mapsList, "Name", 0.4 )
guiGridListAddColumn ( saveDialog.mapsList, "Gamemodes", 0.4 )
Expand Down Expand Up @@ -70,22 +75,25 @@ end

function saveButton()
local resourceName = guiGetText ( saveDialog.mapName )
editor_main.saveResource ( resourceName )
local directory = guiGetText ( saveDialog.directory )
editor_main.saveResource ( resourceName, directory )
end

function restoreSaveDialog()
guiSetProperty(saveDialog.window, "Disabled", "False")
end

addEvent ( "saveAsShowDialog", true )
function saveShowDialog( resources )
function saveShowDialog( resources, directory )
if ( exports.editor_main:getMode() ~= 2 ) then
exports.editor_main:setMode(2)
end
setGUIShowing(false)
guiSetInputEnabled ( true )
setWorldClickEnabled ( false )
guiSetText ( saveDialog.mapName, "" )
directory = ( type( directory ) == 'string' ) and string.match(directory, "%[(%a+)%]")
guiSetText ( saveDialog.directory, directory or '' )
guiGridListClear ( saveDialog.mapsList )
for i,res in ipairs(resources) do
if res["type"] == "map" and string.lower(res["friendlyName"]) ~= TEST_RESOURCE and string.lower(res["friendlyName"]) ~= DUMP_RESOURCE then
Expand Down
3 changes: 2 additions & 1 deletion [editor]/editor_gui/server/guiserverlink.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ function loadsave_getResources ( dialog, player )
mapInfo["friendlyName"] = resourceName
end
table.sort(maps, function(a, b) return a.name < b.name end)
triggerClientEvent ( source, dialog.."ShowDialog", source, maps )
local currentDirectory = get('*editor_main.mapResourceOrganizationalDirectory')
triggerClientEvent ( source, dialog.."ShowDialog", source, maps, currentDirectory )
end
addEventHandler ( "loadsave_getResources", getRootElement(), loadsave_getResources )

Expand Down
4 changes: 2 additions & 2 deletions [editor]/editor_main/client/saveloadtest_client.lua
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ addEventHandler ( "saveloadtest_return", getRootElement(),
end
)

function saveResource ( resourceName )
triggerServerEvent ( "saveResource", getLocalPlayer(), resourceName )
function saveResource ( resourceName, directory )
triggerServerEvent ( "saveResource", getLocalPlayer(), resourceName, nil, directory )
end

function newResource ()
Expand Down
12 changes: 11 additions & 1 deletion [editor]/editor_main/server/saveloadtest_server.lua
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ addEventHandler ( "openResource", rootElement, openResource )

---Save

function saveResource(resourceName, test)
function saveResource(resourceName, test, directory)
if ( client and not isPlayerAllowedToDoEditorAction(client, "saveAs") ) then
editor_gui.outputMessage ("You don't have permissions to save the map!", client,255,0,0)
return false
Expand All @@ -291,11 +291,21 @@ function saveResource(resourceName, test)
"You cannot save while another save or load is in progress" )
return false
end
saveOrganizationalDirectory ( directory )
saveResourceCoroutine = coroutine.create(saveResourceCoroutineFunction)
coroutine.resume(saveResourceCoroutine, resourceName, test, client, client)
end
addEventHandler ( "saveResource", rootElement, saveResource )

function saveOrganizationalDirectory(directory)
if ( utf8.len ( directory ) == 0 ) then
directory = 'none'
else
directory = '[' .. directory .. ']'
end
return set('*editor_main.mapResourceOrganizationalDirectory', directory)
end

local specialSyncers = {
position = function() end,
rotation = function() end,
Expand Down