mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
106
gamemodes/helix/plugins/radio/items/base/sh_radio_m.lua
Normal file
106
gamemodes/helix/plugins/radio/items/base/sh_radio_m.lua
Normal file
@@ -0,0 +1,106 @@
|
||||
--[[
|
||||
| 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/
|
||||
--]]
|
||||
|
||||
|
||||
ITEM.name = "Radio (M) Base"
|
||||
ITEM.category = "Radio"
|
||||
ITEM.model = Model("models/deadbodies/dead_male_civilian_radio.mdl")
|
||||
ITEM.description = "A shiny handheld radio with a frequency tuner."
|
||||
|
||||
ITEM.isRadio = true
|
||||
|
||||
-- Inventory drawing
|
||||
if (CLIENT) then
|
||||
function ITEM:PaintOver(item, w, h)
|
||||
if (item:GetData("enabled")) then
|
||||
surface.SetDrawColor(110, 255, 110, 100)
|
||||
surface.DrawRect(w - 14, h - 14, 8, 8)
|
||||
end
|
||||
end
|
||||
|
||||
function ITEM:PopulateTooltip(tooltip)
|
||||
if (self:GetData("enabled")) then
|
||||
local name = tooltip:GetRow("name")
|
||||
name:SetBackgroundColor(derma.GetColor("Success", tooltip))
|
||||
end
|
||||
|
||||
local channels = self:GetChannels()
|
||||
if (channels) then
|
||||
local channelNames = {}
|
||||
for k, v in ipairs(channels) do
|
||||
if (ix.radio:FindByID(v)) then
|
||||
channelNames[#channelNames + 1] = ix.radio:FindByID(v).name
|
||||
end
|
||||
end
|
||||
|
||||
local chTip = tooltip:AddRowAfter("name", "channel")
|
||||
chTip:SetText("Channels: "..table.concat(channelNames, ", "))
|
||||
chTip:SizeToContents()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ITEM:GetChannels(bForce)
|
||||
return {}
|
||||
end
|
||||
|
||||
function ITEM:OnRemoved()
|
||||
self:SetData("enabled", false)
|
||||
local owner = self:GetOwner()
|
||||
if (owner) then
|
||||
for _, v in ipairs(self:GetChannels(true)) do
|
||||
ix.radio:RemoveListenerFromChannel(owner, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ITEM:OnDestroyed(entity)
|
||||
self:SetData("enabled", false)
|
||||
end
|
||||
|
||||
ITEM.functions.ToggleOn = {
|
||||
name = "Toggle Radio On",
|
||||
OnRun = function(item)
|
||||
item:SetData("enabled", true)
|
||||
item.player:EmitSound("buttons/lever7.wav", 50, math.random(170, 180), 0.25)
|
||||
|
||||
local owner = item:GetOwner()
|
||||
if (owner) then
|
||||
for _, v in ipairs(item:GetChannels()) do
|
||||
ix.radio:AddListenerToChannel(owner, v)
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
OnCanRun = function(item)
|
||||
return item:GetData("enabled", false) == false
|
||||
end
|
||||
}
|
||||
|
||||
ITEM.functions.ToggleOff = {
|
||||
name = "Toggle Radio Off",
|
||||
OnRun = function(item)
|
||||
item:SetData("enabled", false)
|
||||
item.player:EmitSound("buttons/lever7.wav", 50, math.random(170, 180), 0.25)
|
||||
|
||||
local owner = item:GetOwner()
|
||||
if (owner) then
|
||||
for _, v in ipairs(item:GetChannels(true)) do
|
||||
ix.radio:RemoveListenerFromChannel(owner, v)
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
OnCanRun = function(item)
|
||||
return item:GetData("enabled", false) == true
|
||||
end
|
||||
}
|
||||
Reference in New Issue
Block a user