GE Lua Documentation

Press F to search!

getTrafficGroupFromFile

Definition


-- @/lua/ge/extensions/gameplay/traffic/trafficUtils.lua:96

local function getTrafficGroupFromFile(options) -- returns an existing vehicle group file
  options = options or {}
  local group, fileName
  local dir = path.split(getMissionFilename()) or '/levels/'
  local files = FS:findFiles(dir, '*.vehGroup.json', 0, true, true) -- vehGroup files in the level directory
  if not files[1] or options.useCustom then
    files = FS:findFiles('/vehicleGroups/', '*.vehGroup.json', -1, true, true) -- vehGroup files in the vehicle groups directory
  end

  if options.name then -- file simple name (e.g. "traffic", "police", etc.)
    local filteredFiles = {}
    for _, v in ipairs(files) do
      local _, fn = path.splitWithoutExt(v)
      if string.find(fn, string.lower(options.name)) then
        table.insert(filteredFiles, v)
      end
    end
    files = filteredFiles
  end

  if files[1] then
    fileName = files[math.random(#files)] -- if multiple files exist, select one randomly
    group = jsonReadFile(fileName)
    if group then
      group = group.data -- assumes that group data exists (might fail!)
    end
  end

  return group, fileName
end

Callers

@/lua/ge/extensions/gameplay/traffic.lua
      if fileMode then
        fileData, fileName = gameplay_traffic_trafficUtils.getTrafficGroupFromFile({name = 'police'}) -- level specific police vehicles
        if fileData then
        if fileMode then
          fileData, fileName = gameplay_traffic_trafficUtils.getTrafficGroupFromFile({name = 'traffic'}) -- level specific civilian vehicles
          if fileData then