GE Lua Documentation

Press F to search!

getTrackEditorTracks

Definition


-- @/lua/ge/extensions/scenario/quickRaceLoader.lua:233

-- this function gets all the track builder tracks, and creates a quickrace track for each of them, returning them as a list.
local function getTrackEditorTracks()
  local tracks = {}

  --get names of all the track builder tracks
  local editorTracks = {}
  for i, file in ipairs(FS:findFiles('trackEditor/','*.json',-1,true,false)) do
      local _, fn, e = path.split(file)
      editorTracks[i] = fn:sub(1,#fn - #e - 1)
  end
  for _, name in ipairs(editorTracks) do
    local trackData = M.loadTrackBuilderJSON(name)

    if trackData then
      if trackData.version == nil then
        log('I',logTag,"The file 'trackEditor/"..name..".json' uses an old format that is no longer supported.")
      else

        local file = {
          name = name,
          authors = trackData.author or "",
          difficulty = trackData.difficulty or 37, -- 37 = medium
          date = trackData.date or 1521828000,
          lapCount = 1,
          reversible = trackData.reversible or false,
          closed = trackData.connected or false,
          allowRollingStart= false,
          length = trackData.length or nil,
          lapConfig = {},
          description = trackData.description and string.gsub(trackData.description or "", "\\n", "\n") or nil,
          customData = {
            name = name
          },
          ignoreAsMission = true,
        }

        if trackData.connected then
          file.lapCount = trackData.defaultLaps or 2
        end
        file.sourceFile = "quickraceLoader.getTrackEditorTracks()"
        file.trackName = "TrackEditorTrack_"..name
        file.directory = "generatedFile"

        file.official = false
        file.prefabs = {}
        file.reversePrefabs = {}
        file.forwardPrefabs = {}

        file.luaFile = "/lua/ge/extensions/util/trackBuilder/quickraceSetup"

        if FS:fileExists('trackEditor/'..name..'.jpg') then
          file.previews = {'/trackEditor/'..name..'.jpg'}
        elseif FS:fileExists('trackEditor/'..name..'.png') then
          file.previews = {'/trackEditor/'..name..'.png'}
        elseif trackData.level == 'glow_city' then
          file.previews = {"/ui/images/trackEditGlow.png"}
        else
          file.previews = {"/ui/images/trackEdit.png"}
        end
        file.preview = file.previews[1]

        file.spawnSpheres = {}


        file.spawnSpheres.standing = "_standing_spawn"
        file.spawnSpheres.standingReverse = "_standingReverse_spawn"
        file.spawnSpheres.rolling = "_rolling_spawn"
        file.spawnSpheres.rollingReverse = "_rollingReverse_spawn"

        file.tod = file.tod or 3


        file.introType = 'none'

        file.isTrackEditorTrack = true
        local level = trackData.level or 'smallgrid'
        if tracks[level] == nil then tracks[level] = {} end
        tracks[level][#tracks[level]+1] = file
        --print("added " .. name .." to level " .. level)
      end
    end
  end

  return tracks

end

Callers

@/lua/ge/extensions/scenario/quickRaceLoader.lua

  local trackBuilderTracks =  M.getTrackEditorTracks()
 --dump(files)
      --if newLevel.levelName == "smallgrid" then
      --  newLevel.tracks = M.getTrackEditorTracks(quickraceFiles, levelName)
      --  if newLevel.tracks and #(newLevel.tracks) > 0 then
        end
        file.sourceFile = "quickraceLoader.getTrackEditorTracks()"
        file.trackName = "TrackEditorTrack_"..name