1
0
Fork 0
forked from Simnation/Main
Main/resources/[carscripts]/jg-dealerships/shared/main.lua

112 lines
2.6 KiB
Lua
Raw Normal View History

2025-08-04 20:32:58 +02:00
Globals = {}
Functions = {}
Locale = Locales[Config.Locale or "en"]
exports("locale", function() return Locale end)
exports("config", function() return Config end)
---@param text string
---@param debugtype? "warning"|"debug"
function DebugPrint(text, debugtype, ...)
if not Config.Debug then return end
local prefix = "^2[DEBUG]^7"
if debugtype == "warning" then prefix = "^3[WARNING]^7" end
local args = {...}
local output = ""
for i = 1, #args do
if type(args[i]) == "table" then
output = output .. json.encode(args[i])
elseif type(args[i]) ~= "string" then
output = output .. tostring(args[i])
else
output = output .. args[i]
end
if i ~= #args then output = output .. " " end
end
print(prefix, text, output)
end
---@param vehicle integer
function JGDeleteVehicle(vehicle)
if not DoesEntityExist(vehicle) then return end
if GetResourceState("AdvancedParking") == "started" then
exports["AdvancedParking"]:DeleteVehicle(vehicle, false)
else
DeleteEntity(vehicle)
end
end
---@param vehicle integer
---@param plate string
function SetVehiclePlateText(vehicle, plate)
if GetResourceState("AdvancedParking") == "started" then
exports["AdvancedParking"]:UpdatePlate(vehicle, plate)
else
SetVehicleNumberPlateText(vehicle, plate)
end
end
---@param model string | number
---@return number hash
function ConvertModelToHash(model)
return type(model) == "string" and joaat(model) or model --[[@as number]]
end
---@param plate string
function IsValidGTAPlate(plate)
-- Check if the plate matches the pattern and is not longer than 8 characters
-- %w matches alphanumeric characters, %s matches space characters
-- The pattern checks for a string starting with 0 or more alphanumeric or space characters
if #plate <= 8 and plate:match("^[%w%s]*$") then return true end
return false
end
---@param table table
function TableKeys(table)
local keys = {}
for k, _ in pairs(table) do
keys[#keys+1] = k
end
return keys
end
-- Round a number to so-many decimal of places,
-- Which can be negative, e.g. -1 places rounds to 10's
---@param num integer
---@param dp? integer
---@return number
function Round(num, dp)
dp = dp or 0
local mult = 10^(dp or 0)
return math.floor(num * mult + 0.5) / mult
end
---@param list table
---@param item string|number
---@return boolean
function IsItemInList(list, item)
if #list == 0 then
return true
end
for _, value in ipairs(list) do
if value == item then
return true
end
end
return false
end
---@param s string
---@return string
function Trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end