mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-29 12:01:40 +00:00
734f4651cb
Co-authored-by: DerEchteAlec <alec.schitzkat@luwan.io>
85 lines
2.2 KiB
Lua
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
|