GE Lua Documentation

Press F to search!

loadCampaign

Definition


-- @/lua/ge/extensions/campaign/campaignsLoader.lua:12

local function loadCampaign(campaignfile)
  -- log('D', logTag, 'loading campaign : ' .. campaignfile)
  --TODO(AK): add code to validate that this campaign is valid
  local campaign = jsonReadFile(campaignfile)
  campaign.sourceFile =  string.gsub(campaignfile, "(.*:)(.*)", "%2")
  campaign.sourcePath = string.gsub(campaignfile, "(.*)/(.*)", "%1")
  campaign.official = isOfficialContentVPath(campaign.sourcePath)

  -- add mod information
  local mod = extensions.core_modmanager.getModFromPath(campaignfile, true)
  if mod then
    campaign.modID = mod.modID
    campaign.modName = mod.modname
    if mod.modData and mod.modData.title then
      campaign.modTitle = mod.modData.title
    end
  else
    campaign.modID = nil
    campaign.modName = 'BeamNG'
    campaign.modTitle = 'BeamNG.drive'
  end

  local index = string.find(campaign.sourcePath, "/[^/]*$") + 1
  -- todo: insert all images of the scenarios belong to this as well
  campaign.previews = {
    imageExistsDefault(campaign.sourcePath..'/'..campaign.sourcePath:sub(index)..'.jpg')
  }

  --dump(campaign)
  return campaign
end

Callers

@/lua/ge/extensions/campaign/campaigns.lua
--     --load the campaign in the data
--     local campaignToStart = loadCampaign(data.sourceFile)
--     -- dump(campaignToStart)
@/lua/ge/extensions/campaign/campaignsLoader.lua
  for _,campaignfile in pairs(campaignInfofiles) do
    local entry = loadCampaign(campaignfile)
    if entry then
@/lua/ge/extensions/ui/gameplaySelector/tileGenerators/campaignTiles.lua
  end
  local campaign = campaign_campaignsLoader.loadCampaign(campaignSourceFile)
  if not campaign then