Files
sky_phone-sky-systems/sky_phone/source/bridge/shared.lua
T
2026-08-19 20:11:36 +02:00

85 lines
2.2 KiB
Lua

Bridge = Bridge or {}
Bridge.Callbacks = Bridge.Callbacks or {}
Bridge.Calls = Bridge.Calls or {}
Bridge.Database = Bridge.Database or {}
Bridge.Framework = Bridge.Framework or {}
Bridge.Inventory = Bridge.Inventory or {}
Bridge.Radio = Bridge.Radio or {}
Bridge.Normalize = Bridge.Normalize or {}
Bridge.Speaker = Bridge.Speaker or {}
function Bridge.Normalize.FiniteNumber(value)
local number = tonumber(value)
if not number or number ~= number or number == math.huge or number == -math.huge then
return nil
end
return number
end
function Bridge.Normalize.Coordinates(value)
if value == nil then
return nil
end
local success, x, y, z = pcall(function()
return value.x or value[1], value.y or value[2], value.z or value[3]
end)
if not success then
return nil
end
x = Bridge.Normalize.FiniteNumber(x)
y = Bridge.Normalize.FiniteNumber(y)
z = Bridge.Normalize.FiniteNumber(z)
if not x or not y or not z then
return nil
end
return { x = x, y = y, z = z }
end
function Bridge.Speaker.IsEnabled()
return not Config.Speaker or Config.Speaker.Enabled ~= false
end
function Bridge.Calls.SupportsMute()
return false
end
function Bridge.Calls.SetMuted()
return false
end
function Bridge.Radio.SupportsSpeaker()
return false
end
function Bridge.Radio.SetPlayerSpeaker()
return false
end
local level_colours = {
debug = "^5",
info = "^2",
warn = "^3",
error = "^1",
}
function Bridge.Debug(level, message, ...)
local arguments = { ... }
local options = type(arguments[#arguments]) == "table" and arguments[#arguments] or nil
if options then
arguments[#arguments] = nil
end
local bridge_config = Config and Config.Bridge or nil
local important = level == "warn" or level == "error"
local notice = options and options.notice == true
local enabled = important or notice or bridge_config and bridge_config.Debug == true
if not enabled then
return
end
local formatted = #arguments > 0 and message:format(table.unpack(arguments)) or message
print(("%s%s^0"):format(level_colours[level] or "^7", formatted))
end