forked from Simnation/Main
137 lines
3.4 KiB
Lua
137 lines
3.4 KiB
Lua
![]() |
---@class RadioTower
|
||
|
---@field Towers Tower[]
|
||
|
RadioTower = {}
|
||
|
RadioTower.__index = RadioTower
|
||
|
|
||
|
---@param towers Tower[]
|
||
|
---@return RadioTower
|
||
|
function RadioTower.new(towers)
|
||
|
local self = setmetatable({}, RadioTower)
|
||
|
self.Towers = towers
|
||
|
return self
|
||
|
end
|
||
|
|
||
|
---@class Tower
|
||
|
---@field X number
|
||
|
---@field Y number
|
||
|
---@field Z number
|
||
|
---@field Range number
|
||
|
Tower = {}
|
||
|
Tower.__index = Tower
|
||
|
---@param x number
|
||
|
---@param y number
|
||
|
---@param z number
|
||
|
---@param range number?
|
||
|
---@return Tower
|
||
|
function Tower.new(x, y, z, range)
|
||
|
local self = setmetatable({}, Tower)
|
||
|
self.X = x
|
||
|
self.Y = y
|
||
|
self.Z = z
|
||
|
self.Range = range or 8000.0
|
||
|
return self
|
||
|
end
|
||
|
|
||
|
---@class RadioCommunication
|
||
|
---@field Name string
|
||
|
---@field SenderRadioType RadioType
|
||
|
---@field OwnRadioType RadioType
|
||
|
---@field PlayMicClick boolean
|
||
|
---@field Volume number?
|
||
|
---@field Direct boolean
|
||
|
---@field Secondary boolean
|
||
|
---@field RelayedBy string[]
|
||
|
RadioCommunication = {}
|
||
|
RadioCommunication.__index = RadioCommunication
|
||
|
|
||
|
---@param name string
|
||
|
---@param senderRadioType RadioType
|
||
|
---@param ownRadioType RadioType
|
||
|
---@param playMicClick boolean
|
||
|
---@param direct boolean
|
||
|
---@param isSecondary boolean
|
||
|
---@param relayedBy string[]?
|
||
|
---@param volume number?
|
||
|
---@return RadioCommunication
|
||
|
function RadioCommunication.new(name, senderRadioType, ownRadioType, playMicClick, direct, isSecondary, relayedBy, volume)
|
||
|
local self = setmetatable({}, RadioCommunication)
|
||
|
self.Name = name
|
||
|
self.SenderRadioType = senderRadioType
|
||
|
self.OwnRadioType = ownRadioType
|
||
|
self.PlayMicClick = playMicClick
|
||
|
self.Direct = direct
|
||
|
self.Secondary = isSecondary
|
||
|
|
||
|
if relayedBy and #relayedBy > 0 then
|
||
|
self.RelayedBy = relayedBy
|
||
|
else
|
||
|
-- self.RelayedBy = {}
|
||
|
end
|
||
|
|
||
|
if volume ~= 1.0 then self.Volume = volume end
|
||
|
return self
|
||
|
end
|
||
|
|
||
|
---@class RadioChannelMember
|
||
|
---@field PlayerName string
|
||
|
---@field IsPrimaryChannel boolean
|
||
|
RadioChannelMember = {
|
||
|
PlayerName = "",
|
||
|
IsPrimaryChannel = true
|
||
|
}
|
||
|
|
||
|
---@class RadioChannelMemberUpdate
|
||
|
---@field PlayerNames string[]
|
||
|
---@field IsPrimaryChannel boolean
|
||
|
RadioChannelMemberUpdate = {}
|
||
|
RadioChannelMemberUpdate.__index = RadioChannelMemberUpdate
|
||
|
|
||
|
---@param members string[]
|
||
|
---@param isPrimary boolean
|
||
|
---@return RadioChannelMemberUpdate
|
||
|
function RadioChannelMemberUpdate.new(members, isPrimary)
|
||
|
local self = setmetatable({}, RadioChannelMemberUpdate)
|
||
|
self.PlayerNames = members
|
||
|
self.IsPrimaryChannel = isPrimary
|
||
|
return self
|
||
|
end
|
||
|
|
||
|
---@class RadioTrafficState
|
||
|
---@field Name string
|
||
|
---@field IsSending boolean
|
||
|
---@field IsPrimaryChannel boolean
|
||
|
---@field ActiveRelay string
|
||
|
RadioTrafficState = {
|
||
|
Name = nil,
|
||
|
IsSending = nil,
|
||
|
IsPrimaryChannel = nil,
|
||
|
ActiveRelay = nil
|
||
|
}
|
||
|
|
||
|
---@class RadioTraffic
|
||
|
---@field Name string
|
||
|
---@field IsSending boolean
|
||
|
---@field RadioChannelName string
|
||
|
---@field SenderRadioType RadioType
|
||
|
---@field ReceiverRadioType RadioType
|
||
|
---@field Relays string[]
|
||
|
RadioTraffic = {}
|
||
|
RadioTraffic.__index = RadioTraffic
|
||
|
|
||
|
---@param playerName string
|
||
|
---@param isSending boolean
|
||
|
---@param radioChannelName string
|
||
|
---@param senderType RadioType
|
||
|
---@param receiverType RadioType
|
||
|
---@param relays string[]
|
||
|
---@return RadioTraffic
|
||
|
function RadioTraffic.new(playerName, isSending, radioChannelName, senderType, receiverType, relays)
|
||
|
local self = setmetatable({}, RadioTraffic)
|
||
|
self.Name = playerName
|
||
|
self.IsSending = isSending
|
||
|
self.RadioChannelName = radioChannelName
|
||
|
self.SenderRadioType = senderType
|
||
|
self.ReceiverRadioType = receiverType
|
||
|
self.Relays = relays
|
||
|
return self
|
||
|
end
|