2025-04-14 10:33:35 +00:00

56 lines
2.6 KiB
Lua

local config = require 'config.shared'
local VEHICLES = exports.qbx_core:GetVehiclesByHash()
local function findConfigValue(filteredConfig, key, default)
if filteredConfig.modelConfig?[key] ~= nil then
return filteredConfig.modelConfig[key]
elseif filteredConfig.categoryConfig?[key] ~= nil then
return filteredConfig.categoryConfig[key]
elseif filteredConfig.classConfig?[key] ~= nil then
return filteredConfig.classConfig[key]
elseif filteredConfig.typeConfig?[key] ~= nil then
return filteredConfig.typeConfig[key]
elseif filteredConfig.defaultConfig?[key] ~= nil then
return filteredConfig.defaultConfig[key]
else
return default
end
end
---Gets the vehicle's config
---@param vehicle number
---@return VehicleConfig
function GetVehicleConfig(vehicle)
assert(vehicle and vehicle ~= 0, 'cannot get the vehicle config for a vehicle that doesn\'t exist')
local model = GetEntityModel(vehicle)
local class = IsDuplicityVersion() and exports.qbx_core:GetVehicleClass(model) or GetVehicleClass(vehicle)
local filteredConfig = {
modelConfig = config.vehicles.models[model],
categoryConfig = config.vehicles.categories[VEHICLES[model]?.category],
classConfig = config.vehicles.classes[class],
typeConfig = config.vehicles.types[GetVehicleType(vehicle)],
defaultConfig = config.vehicles.default
}
local noLock = findConfigValue(filteredConfig, 'noLock', false)
local spawnLockedIfParked = noLock and 0.0 or findConfigValue(filteredConfig, 'spawnLockedIfParked', 1.0)
local spawnLockedIfDriven = noLock and 0.0 or findConfigValue(filteredConfig, 'spawnLockedIfDriven', 1.0)
local carjackingImmune = findConfigValue(filteredConfig, 'carjackingImmune', false)
local lockpickImmune = findConfigValue(filteredConfig, 'lockpickImmune', false)
local shared = findConfigValue(filteredConfig, 'shared', false)
local removeNormalLockpickChance = findConfigValue(filteredConfig, 'removeNormalLockpickChance', 1.0)
local removeAdvancedLockpickChance = findConfigValue(filteredConfig, 'removeAdvancedLockpickChance', 1.0)
local findKeysChance = findConfigValue(filteredConfig, 'findKeysChance', 1.0)
return {
spawnLockedIfParked = spawnLockedIfParked,
spawnLockedIfDriven = spawnLockedIfDriven,
noLock = noLock,
carjackingImmune = carjackingImmune,
lockpickImmune = lockpickImmune,
shared = shared,
removeNormalLockpickChance = removeNormalLockpickChance,
removeAdvancedLockpickChance = removeAdvancedLockpickChance,
findKeysChance = findKeysChance,
}
end