GE Lua Documentation

Press F to search!

getAutosave

Definition


-- @/lua/ge/extensions/career/saveSystem.lua:32

-- TODO return nil instead of ""
local function getAutosave(path, oldest)
  local resultDate = oldest and "A" or "0"
  local resultSave = ""
  local folders = FS:directoryList(path, false, true)
  -- TODO use getAllAutosaves to get the newest or oldest save
  if (tableSize(folders) < numberOfAutosaves) and oldest then
    -- Check the autosave folders that are already there to find a name that isnt used yet
    for i = 1, numberOfAutosaves do
      local possiblePath = "/" .. path .. "/autosave" .. i
      if not tableContains(folders, possiblePath) then
        resultSave = possiblePath
        resultDate = "0"
        break
      end
    end
  else
    for i = 1, tableSize(folders) do
      local data = jsonReadFile(folders[i] .. "/info.json")
      if oldest then
        if not data or not data.date or data.date < resultDate or data.corrupted then
          resultSave = folders[i]
          resultDate = (data and not data.corrupted) and data.date or "0"
        end
      else
        if data and data.date and data.date > resultDate and not data.corrupted then
          resultSave = folders[i]
          resultDate = data.date
        end
      end
    end
  end
  return resultSave, resultDate
end

Callers

@/lua/ge/extensions/career/saveSystem.lua
  end
  local savePath = specificAutosave and (saveRoot .. slotName .. "/" .. specificAutosave) or getAutosave(saveRoot .. slotName, false) -- get newest autosave
  if not currentSaveSlot or career_modules_linearTutorial.isLinearTutorialActive() then return end
  oldestSave, oldSaveDate = getAutosave(saveRoot .. currentSaveSlot, true) -- get oldest autosave to overwrite
  saveDate = os.date("!%Y-%m-%dT%H:%M:%SZ") -- UTC time
@/lua/ge/extensions/career/career.lua

  local autosavePath = career_saveSystem.getAutosave(career_saveSystem.getSaveRootDirectory() .. saveSlot)
  local infoData = jsonReadFile(autosavePath .. "/info.json")