getList
Definition
-- @/lua/ge/extensions/core/levels.lua:67
local function getList()
if cache ~= nil then
--dump{'cache valid: ', cache}
return cache
end
local levels = {}
if not FS:directoryExists('/levels/') then
log('E', '', 'main levels folder not found: /levels/')
return {}
end
-- find all levels
local found_levels = _findAvailableLevels()
--dump{'found_levels', found_levels}
for _, l in pairs(found_levels) do
-- so, enrich the data of the levels for the user interface below
local info = jsonReadFile(l.infoPath) or {}
-- figure out the mod this belongs to
local mod = extensions.core_modmanager.getModFromPath(l.infoPath, true)
if mod then
info.modID = mod.modID
info.modName = mod.modname
if mod.modData and mod.modData.title then
info.modTitle = mod.modData.title
end
else
info.modID = nil
info.modName = 'BeamNG'
info.modTitle = 'BeamNG.drive'
end
info.misFilePath = l.dir ..'/'..l.entryPoint
info.dir = l.dir
info.levelName = l.levelName
info.fullfilename = l.fullfilename
if info.hidden ~= nil then
log("W", "", "Found deprecated flag 'hidden' in level: "..dumps(l.levelName)..". The flag has been renamed to 'isAuxiliary'")
if info.isAuxiliary == nil then
info.isAuxiliary = info.hidden
end
end
info["official"] = isOfficialContentVPath(l.dir)
if type(info["previews"]) == 'table' and #info["previews"] > 0 then
-- add prefix
local newPreviews = {}
for _, img in pairs(info["previews"]) do
table.insert(newPreviews, l.dir..'/' .. img)
end
info["previews"] = newPreviews
else
info["title"] = l.levelName
info["previews"] = {
imageExistsDefault(l.dirEntry..'.png', imageExistsDefault(l.dirEntry..'_preview.png')),
}
end
info["preview"] = nil
local foundDefaultSpawn = false
if type(info.spawnPoints) == 'table' then
for _, point in pairs(info.spawnPoints) do
if not point.previews then point.previews = {} end
-- add path prefix
local newPreviews = {}
for _, img in pairs(point.previews) do
table.insert(newPreviews, l.dir..'/' .. img)
end
table.insert(newPreviews, imageExistsDefault(l.dir..'/'.. (point.preview or ''), l.dirEntry..'_preview.png'))
point.previews = newPreviews
point.preview = nil
if point.objectname == info.defaultSpawnPointName then
foundDefaultSpawn = true
point.previews = info["previews"]
point.flag = 'default'
end
end
else
info.spawnPoints = {}
end
if not foundDefaultSpawn then
-- insert default spawn point
table.insert(info.spawnPoints, {
previews = info["previews"],
translationId = 'ui.common.default',
flag = 'default'
})
end
if type(info.minimap) == 'table' then
for _, elem in ipairs(info.minimap) do
elem.file = l.dir..'/' .. elem.file
end
end
-- default to true if not set
if info.supportsTraffic == nil then info.supportsTraffic = true end
if info.supportsTimeOfDay == nil then info.supportsTimeOfDay = true end
table.insert(levels, info)
::continue::
end
-- now filter out .mis levels if a json version of the same exists
local jsonLevels = {}
for _, level in pairs(levels) do
if string.find(level.fullfilename, ".json") then
jsonLevels[level.levelName] = true
end
end
local newLevels = {}
for _, level in pairs(levels) do
-- check if there is a json version of this, thus hide the old .mis file format
if string.find(level.fullfilename, ".mis") and jsonLevels[level.levelName] then
--log('D', '', 'not adding .mis level as .json format is existing for the same level: ' .. dumps(level))
else
table.insert(newLevels, level)
end
end
levels = newLevels
-- sort by name, case insensitive
table.sort(levels, function(a, b) return string.lower(a.levelName) < string.lower(b.levelName) end )
cache = levels
--dump{"generated levels cache: ", cache}
return cache
end
Callers
@/lua/ge/extensions/scenario/scenariosLoader.lua
-- this function is used by the UI to display the list of scenarios, and by techCore to get the list of available scenarios
local function getList(subdirectory, includeAll, skipMissions)
displayedRestrictMessage = false
-- refresh the list
local scenarios = getList()
-- select the scenario again
local function load(name)
local list = getList()
for _, v in ipairs(list) do
@/lua/ge/extensions/gameplay/garageMode.lua
local levelInfo = {}
for _, level in ipairs(core_levels.getList()) do
if string.lower(level.levelName) == string.lower(getCurrentLevelIdentifier()) then
@/lua/ge/extensions/editor/missionEditor.lua
for _, scenario in ipairs(scenario_scenariosLoader.getList()) do
local origin = "Scenario"
@/lua/ge/extensions/ui/apps/minimap/additionalInfo.lua
else
for _, lvl in ipairs(core_levels.getList()) do
if string.lower(lvl.levelName) == getCurrentLevelIdentifier() then
@/lua/ge/extensions/career/modules/uiUtils.lua
local function getCareerCurrentLevelName()
for _, lvl in ipairs(core_levels.getList()) do
if string.lower(lvl.levelName) == getCurrentLevelIdentifier() then
@/lua/ge/extensions/tech/techCore.lua
scenarios = {}
local scenarioList = scenariosLoader.getList(nil, true)
for _, v in ipairs(scenarioList) do
M.handleGetLevels = function(request)
local list = core_levels.getList()
local resp = {type = 'GetLevels', result = list}
@/lua/ge/extensions/gameplay/sites/sitesManager.lua
local fileCount = 0
for _, info in ipairs(core_levels.getList()) do
local level = string.lower(info.levelName)
@/lua/ge/extensions/editor/flowgraphEditor.lua
local function isActionMapEnabled(map)
local list = ActionMap:getList()
if list and list.active then
@/lua/ge/extensions/ui/gameplaySelector/tileGenerators/levelTiles.lua
local function onGameplaySelectorGetTiles(items)
for _, level in ipairs(core_levels.getList()) do
local defaultSpawnPointCount = 0
@/lua/ge/extensions/ui/bindingsLegend.lua
local name = actionMapName.."ActionMap"
for _, actionMap in ipairs(ActionMap:getList().active) do
if actionMap.enabled and actionMap.name == name then
@/lua/ge/extensions/util/precompileShaders.lua
local function onInit()
local allLevels = core_levels.getList()
for _, value in pairs(allLevels) do
@/ui/modules/scenarioselect/scenarioselect.js
bngApi.engineLua('scenario_scenariosLoader.getList()', function(res) {
$scope.filtered = []
@/lua/ge/extensions/util/docCreator.lua
local levels = deepcopy(extensions.core_levels.getList())
cleanupTable(job, levels)
@/lua/ge/extensions/util/stepHandler.lua
local foundLevel = false
for i, v in ipairs(core_levels.getList()) do
if v.levelName:lower() == step.level:lower() then
@/lua/ge/extensions/gameplay/missions/missionManager.lua
local foundLevel = false
for i, v in ipairs(core_levels.getList()) do
if v.levelName:lower() == step.level:lower() then
@/lua/ge/extensions/ui/gameplaySelector/tileGenerators/campaignTiles.lua
if backend.backendName == "gameplaySelector" then
for _, campaign in ipairs(campaign_campaignsLoader.getList()) do
local item = {
@/lua/ge/extensions/core/input/bindings.lua
actionToControl = nil
for i,s in pairs(ActionMap:getList())do
for j,v in ipairs(s) do
@/lua/ge/extensions/career/modules/spawnPoints.lua
levelInfo = nil
for _, info in ipairs(core_levels.getList()) do
if string.lower(info.levelName) == string.lower(currentLevel) then
@/lua/ge/extensions/ui/gameplaySelector/tileGenerators/scenarioTiles.lua
if backend.backendName == "gameplaySelector" then
for _, scenario in ipairs(scenario_scenariosLoader.getList(nil, false, true)) do
local item = {
@/ui/modules/campaignselect/campaignselect.js
bngApi.engineLua('campaign_campaignsLoader.getList()', function(res) {
$scope.filtered = []
@/lua/ge/extensions/core/levels.lua
local res = {}
for _, level in ipairs(getList()) do
table.insert(res, level.levelName)
local res = {}
for _, level in ipairs(getList()) do
table.insert(res, level.dir.."/")
levelName = string.lower(levelName)
for _, l in ipairs(getList()) do
if string.lower(l.levelName) == levelName then
local function getListWithStats()
return { levels = getList(), uiStats = freeroam_levelStats.getUiStats() }
end
@/lua/ge/extensions/freeroam/vueBigMap.lua
}
for _, lvl in ipairs(core_levels.getList()) do
if string.lower(lvl.levelName) == getCurrentLevelIdentifier() then
@/lua/ge/extensions/campaign/campaignsLoader.lua
local function getList()
-- log('D', logTag, 'getList called...')
local campaigns = getList()
for _,campaign in pairs(campaigns) do
local function startByFolder(path, endCallback)
local campaignList = getList()
for _,camp in ipairs(campaignList) do
@/ui/modules/rallyselect/rallyselect.js
bngApi.engineLua('scenario_scenariosLoader.getList()', function(res) {
$scope.filtered = []
@/lua/ge/extensions/freeroam/bigMapPoiProvider.lua
for _, lvl in ipairs(core_levels.getList()) do
if string.lower(lvl.levelName) == getCurrentLevelIdentifier() then