Files
wnsrc/gamemodes/helix/plugins/radio/cl_hooks.lua
lifestorm 6a58f406b1 Upload
2024-08-04 23:54:45 +03:00

104 lines
2.8 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
local ix = ix
local LocalPlayer = LocalPlayer
local IsValid = IsValid
local draw = draw
function PLUGIN:HUDPaint(width, height, alpha)
if (!IsValid(LocalPlayer())) then
return
end
local character = LocalPlayer():GetCharacter()
if (character and IsValid(ix.gui.chat) and ix.gui.chat:IsVisible() and ix.gui.chat.bActive) then
local radioChannels = {}
--local quick = {}
for k in pairs(LocalPlayer():GetLocalVar("radioChannels", {})) do
--[[
local quickCom = LocalPlayer():HasQuickComms(k)
if (quickCom) then
quick[quickCom] = k
continue
end
--]]
radioChannels[#radioChannels + 1] = k
end
table.sort(radioChannels, ix.radio.sortFunc)
for k, v in ipairs(radioChannels) do
radioChannels[k] = ix.radio:FindByID(v).name
end
--[[
local seen = false
if (!table.IsEmpty(quick)) then
for i = 1, 5 do
if (!seen and !quick[i]) then
quick[i] = "none"
elseif (quick[i]) then
seen = true
quick[i] = ix.radio:FindByID(quick[i]).name
end
end
end
--]]
local channelsText = L("radioChannels")..": "..((#radioChannels > 0) and table.concat(radioChannels, ", ") or L("radioNone"))
--local quickText = L("quickChannels")..": "..((#quick > 0) and table.concat(quick, ", ") or L("radioNone"))
local currChannel = ix.radio:FindByID(character:GetRadioChannel())
local currentText = L("radioSpeaking")..": "..(currChannel and currChannel.name or L("radioNone"))
local x, y = ix.gui.chat:GetPos()
y = y - SScaleMin(20 / 3)
x = x + 10
draw.SimpleTextOutlined(currentText, "DebugFixedRadio",
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
--[[
if (#quick > 0) then
y = y - ScreenScale(20 / 3)
draw.SimpleTextOutlined(quickText, "DebugFixed",
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
end
--]]
if (#radioChannels > 0) then
y = y - SScaleMin(20 / 3)
draw.SimpleTextOutlined(channelsText, "DebugFixedRadio",
x, y, Color(255, 255, 255), TEXT_ALIGN_LEFT, TEXT_ALIGN_TOP, 1, Color(0, 0, 0))
end
end
end
net.Receive("ixRadioChannels", function(len)
local id = net.ReadUInt(32)
local character = ix.char.loaded[id]
local channels = {}
local total = net.ReadUInt(16)
for _ = 1, total do
channels[#channels + 1] = net.ReadString()
end
character.vars.radioChannels = channels
end)
function PLUGIN:InitializedPlugins()
CHAT_RECOGNIZED["radio"] = true
CHAT_RECOGNIZED["radio_eavesdrop"] = true
CHAT_RECOGNIZED["radio_eavesdrop_yell"] = true
end