GE Lua Documentation

Press F to search!

saveMission

Definition


-- @/lua/ge/extensions/gameplay/missions/missions.lua:606

local function saveMission(missionData, newFolder)
  local targetFolder = (newFolder or missionData.missionFolder) .. "/"..infoFile
  missionData.recommendedAttributes = {}
  for k, v in pairs(missionData.recommendedAttributesKeyBasedCache or {}) do
    if v then
      table.insert(missionData.recommendedAttributes, k)
    end
  end
  local careerSetup = deepcopy(missionData.careerSetup or {})
  careerSetup._activeStarCache = nil
  local data = {
    name = missionData.name or "",
    description = missionData.description or "",
    missionType = missionData.missionType or "",
    retryBehaviour = missionData.retryBehaviour or "infiniteRetries",
    startCondition = missionData.startCondition or {type='always'},
    visibleCondition = missionData.visibleCondition or {type='always'},
    startTrigger = deepcopy(missionData.startTrigger),
    --recommendedAttributes = missionData.recommendedAttributes,
    --prefabs = missionData.prefabs or {},
    --prefabsRequireCollisionReload = missionData.prefabsRequireCollisionReload or false,
    missionTypeData = missionData.missionTypeData or {},
    --trafficAllowed = missionData.trafficAllowed or (missionData.trafficAllowed==nil),
    devNotes = missionData.devNotes,
    additionalAttributes = missionData.additionalAttributes,
    customAdditionalAttributes = missionData.customAdditionalAttributes,
    grouping = missionData.grouping,
    isAvailableAsScenario = missionData.isAvailableAsScenario,
    author = missionData.author,
    date = missionData.date,
    careerSetup = careerSetup,
    setupModules = missionData.setupModules,
    devMission = missionData.devMission,
    layers = missionData.layers,
    official = nil,
  }

  if data.careerSetup.starRewards then
    for key, list in pairs(data.careerSetup.starRewards) do
      for _, reward in ipairs(list) do
        if reward._originalRewardAmount then
          reward.rewardAmount = reward._originalRewardAmount
          reward._originalRewardAmount = nil
        else
          log("W","Reward had no _originalRewardAmount? " .. dumps(missionData.id) .. " - "..dumps(key) .. " : " .. dumps(reward.attributeKey))
        end
      end
    end
  end

  -- write pretty
  jsonWriteFile(targetFolder, data, true)
  log("I","","Wrote mission successfully to " .. targetFolder)
end

Callers

@/lua/ge/extensions/gameplay/missions/missions.lua
  --data.recommendedAttributesKeyBasedCache = data.recommendedAttributesKeyBasedCache or {}
  saveMission(data, missionsDir.."/"..id)
  local loaded = loadMission(missionsDir.."/"..id)
@/lua/ge/extensions/gameplay/missions/proceduralMissionGenerators/timeTrialMissions.lua
                  mission.missionTypeData.raceFile = "race.race.json"
                  gameplay_missions_missions.saveMission(mission)
                end
@/lua/ge/extensions/gameplay/missions/progress.lua
    else
      career_modules_missionWrapper.saveMission(id)
    end
    else
      career_modules_missionWrapper.saveMission(id)
    end
@/lua/ge/extensions/editor/missionEditor.lua
      if editor.uiIconImageButton(editor.icons.save, im.ImVec2(40, 40), unsavedColor) then
        gameplay_missions_missions.saveMission(shownMission,shownMission.missionFolder)
        shownMission._dirty = false

      gameplay_missions_missions.saveMission(newMis)
      M.reloadMissionSystem()
        if im.MenuItem1("Save") then
          gameplay_missions_missions.saveMission(lastShownMission,lastShownMission.missionFolder)
          lastShownMission._dirty = false
            if m._dirty then
              gameplay_missions_missions.saveMission(m,m.missionFolder)
              m._dirty = false
@/lua/ge/extensions/career/modules/missionWrapper.lua

local function saveMission(id)
  cacheMissionData(id)
    career_modules_playerDriving.resetPlayerState()
    saveMission(mission.id)
  end