getQuickraceList
Definition
-- @/lua/ge/extensions/scenario/quickRaceLoader.lua:49
-- this function returns a list containing all levels that contain quickraces.
-- each level has a 'tracks'-property, which contains a list of all quickrace tracks for this level.
local function getQuickraceList()
local files = M.getLevelList()
local proceduralLevel = {}
local levels = {}
local addingProcedural = true
local trackBuilderTracks = M.getTrackEditorTracks()
--dump(files)
for _, levelName in ipairs(files) do
--print(levelName)
local levelPath = '/levels/' .. levelName .. '/quickrace/'
local quickraceFiles = FS:findFiles(levelPath, '*.json', -1, true, false)
local newLevel = {}
if #quickraceFiles > 0 or trackBuilderTracks[levelName] ~= nil then -- only add the level if it has quickraces inside!
newLevel.radiusMultiplierAI = 2
newLevel.levelObjects = {
tod = { time = 0.9, dayLength = 120, play = false }
--sunsky = { colorize = "0.427451 0.572549 0.737255 1" }
}
newLevel.prefabs = {}
newLevel.playersCountRange = { min = 1, max = 1 }
newLevel.uilayout = 'quickraceScenario'
newLevel.levelName = levelName
newLevel.levelInfo = jsonReadFile('/levels/'..levelName..'/info.json') -- this contains the level info for the UI!
newLevel.official = isOfficialContentVPath('levels/'..levelName..'/info.json')
if not newLevel.levelInfo then
log('W', 'quickrace', 'could not load info-file for level ' .. levelName)
else
newLevel.name = newLevel.levelInfo.title
end
if newLevel.levelName == "driver_training" then
newLevel.levelInfo.title = 'Procedural Tracks'
newLevel.name = newLevel.levelInfo.title
newLevel.uilayout = 'proceduralScenario'
end
if newLevel.levelName == "smallgrid" then
newLevel.levelInfo.title = "Track Editor Tracks"
newLevel.name = newLevel.levelInfo.title
end
newLevel.scenarioName = newLevel.name
newLevel.previews = M.customPreviewLoader(newLevel, levelName)
if levelName == "smallgrid" then
newLevel.previews = {"/ui/images/trackEdit.png"}
end
newLevel.mission = path.getPathLevelMain(levelName)
--if newLevel.levelName == "smallgrid" then
-- newLevel.tracks = M.getTrackEditorTracks(quickraceFiles, levelName)
-- if newLevel.tracks and #(newLevel.tracks) > 0 then
-- newLevel.previews = newLevel.tracks[1].previews
-- end
--else
newLevel.tracks = M.getTracks(quickraceFiles, levelName, newLevel.levelName)
--end
local tbt = trackBuilderTracks[levelName] or trackBuilderTracks[levelName:lower()]
if tbt ~= nil then
for _,t in ipairs(tbt) do
newLevel.tracks[#newLevel.tracks+1] = t
end
end
newLevel.trackCount = #newLevel.tracks
newLevel.vehicles = {
scenario_player0 = {
driver = { player = true, startFocus = true, required = true }
}
}
newLevel.vehicles['*'] = {}
if #newLevel.tracks > 0 then
if newLevel.previews and #newLevel.previews > 0 then
newLevel.preview = newLevel.previews[1]
newLevel.preImgIndex = 0
end
newLevel.maxPlayers = 0
if newLevel.playersCountRange and newLevel.playersCountRange.max then
newLevel.maxPlayers = newLevel.playersCountRange.max
else
for _,v in pairs(newLevel.vehicles) do
if (v.playerUsable == true or v.playerUsable == '1') or (v.driver and v.driver.player == true) then
newLevel.maxPlayers = newLevel.maxPlayers + 1
end
end
end
if newLevel.playersCountRange and newLevel.playersCountRange.min then
newLevel.minPlayers = newLevel.playersCountRange.min
else
newLevel.minPlayers = newLevel.maxPlayers;
end
table.insert(levels, newLevel)
end
-- if addingProcedural then
-- addingProcedural = false
-- end
end
end
return levels
end
Callers
@/ui/modules/dragrace/dragrace.js
Future how to use:
Call quickRaceLoader.getQuickraceList(), which contanis a list of levels.
Each level has a levelInfo-property, which is the info from the info.json in the level.
@/lua/ge/extensions/editor/missionEditor.lua
-- for _, qr in ipairs(scenario_quickRaceLoader.getQuickraceList()) do
-- csvdata:add(translateLanguage(qr.scenarioName, qr.scenarioName, true), tonumber(qr.date), "Time Trial")
@/lua/ge/extensions/gameplay/missions/proceduralMissionGenerators/timeTrialMissions.lua
extensions.load('scenario_quickRaceLoader')
local data = scenario_quickRaceLoader.getQuickraceList()
local missions = {}
@/ui/modules/quickrace/quickrace.js
Future how to use:
Call quickRaceLoader.getQuickraceList(), which contanis a list of levels.
Each level has a levelInfo-property, which is the info from the info.json in the level.
bngApi.engineLua('scenario_quickRaceLoader.getQuickraceList()', function(res) {
showList(res)
@/ui/modules/busRoute/busRoute.js
Future how to use:
Call quickRaceLoader.getQuickraceList(), which contanis a list of levels.
Each level has a levelInfo-property, which is the info from the info.json in the level.
@/ui/modules/lightrunner/lightrunner.js
Future how to use:
Call quickRaceLoader.getQuickraceList(), which contanis a list of levels.
Each level has a levelInfo-property, which is the info from the info.json in the level.
bngApi.engineLua('scenario_quickRaceLoader.getQuickraceList()', function (res) {
$scope.$evalAsync(function () {
@/lua/ge/extensions/scenario/quickRaceLoader.lua
local function getLevel(levelName)
local raceList = getQuickraceList()
if raceList then