getDefaultVehicleParams
Definition
-- @/lua/ge/extensions/core/vehicles.lua:2272
local function getDefaultVehicleParams()
log('D', 'main', 'Loading default vehicle')
local arg = parseArgs.args.vehicleConfig
if arg then
local pathConfig = "vehicles/"..arg
local modelRegexPC = "^([%w|_|%-|%s]+)/(.*)%.pc"
local model, _ = string.match(arg, modelRegexPC)
local modelData = M.getModel(model)
if modelData and next(modelData) then
return {model, {config = pathConfig}}
else
log('E', 'main', "Model of vehicle via parseArgs (" ..dumps(arg)..") ("..dumps(model)..") doesn't exist.")
end
end
local myveh = TorqueScriptLua.getVar('$beamngVehicleArgs')
if myveh ~= "" then
--TorqueScriptLua.setVar( '$beamngVehicle', myveh )
local mycolor = getVehicleColor()
log('I', 'main', 'myColor = '..dumps(mycolor))
--TorqueScriptLua.setVar( '$beamngVehicleColor', mycolor )
local myvehModel = M.getModel(myveh)
if myvehModel and next(myvehModel) then
return {myveh, {color = mycolor}}
else
log('E', 'main', "Model of vehicle via TorqueScriptLua.getVar('$beamngVehicleArgs') (" ..dumps(myveh)..") doesn't exist.")
end
end
local dir = FS:directoryExists('vehicles')
if not dir then
log('E', 'main', '"/vehicles/" directory not found!')
return nil
end
local data = jsonReadFile(pathDefaultConfig)
if not data then
return defaultPickupParams
end
if not data.format or data.format == 2 then
if data.model then
if next(FS:findFiles('/vehicles/'..data.model..'/', '*.jbeam', 1, false, false)) then
--TorqueScriptLua.setVar( '$beamngVehicle', data.model ) -- Set the model
--TorqueScriptLua.setVar( '$beamngVehicleConfig', pathDefaultConfig ) -- Set the parts and color
--TorqueScriptLua.setVar( '$beamngVehicleLicenseName', data.licenseName and data.licenseName or "") -- Set the license plate
return {data.model, {config = pathDefaultConfig, licenseText = data.licenseName and data.licenseName or ""}}
else
log('E', 'main', "Model of default vehicle doesn't exist. Loading default pickup.")
return defaultPickupParams
end
else
return defaultPickupParams
end
elseif data.format == 4 then
local allVehDirsExist = false
if type(data.vehicles) == "table" and next(data.vehicles) then
local visitedDirs = {}
allVehDirsExist = true
for vehIdx, vehData in ipairs(data.vehicles) do
local modelName
if vehData.model then
modelName = vehData.model
elseif vehData.linkedPCFile then
modelName = string.match(vehData.linkedPCFile, 'vehicles/([%w|_|%-|%s]+)')
end
if not modelName then
allVehDirsExist = false
break
end
if not visitedDirs[modelName] then
if not next(FS:findFiles('/vehicles/'..modelName..'/', '*.jbeam', 1, false, false)) then
allVehDirsExist = false
break
end
visitedDirs[modelName] = true
end
end
else
log('E', 'main', "No vehicles exist in default vehicle collection. Loading default pickup.")
return defaultPickupParams
end
if allVehDirsExist then
local pcData = data.vehicles[1]
if not pcData then
log('E', 'main', "No vehicles exist in default vehicle collection. Loading default pickup.")
return defaultPickupParams
end
local modelName
if pcData.model then
modelName = pcData.model
elseif pcData.linkedPCFile then
modelName = string.match(pcData.linkedPCFile, 'vehicles/([%w|_|%-|%s]+)')
end
if modelName then
--TorqueScriptLua.setVar( '$beamngVehicle', modelName ) -- Set the model
--TorqueScriptLua.setVar( '$beamngVehicleConfig', pathDefaultConfig ) -- Set the parts and color
--TorqueScriptLua.setVar( '$beamngVehicleLicenseName', data.licenseName and data.licenseName or "") -- Set the license plate
return {modelName, {config = pathDefaultConfig, licenseText = data.licenseName and data.licenseName or ""}}
else
log('E', 'main', "Model of first vehicle in default vehicle collection couldn't be determined. Loading default pickup.")
return defaultPickupParams
end
else
log('E', 'main', "Model(s) of default vehicle collection don't exist. Loading default pickup.")
return defaultPickupParams
end
end
end
Callers
@/lua/ge/extensions/core/levels.lua
-- spawn default vehicle
nextSpawnVehicle = core_vehicles.getDefaultVehicleParams()
end
log("E", "", "Model: "..dumps(model).." does not exist. using default vehicle instead.")
nextSpawnVehicle = core_vehicles.getDefaultVehicleParams()
model, options = unpack(nextSpawnVehicle)