137 lines
		
	
	
		
			No EOL
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			No EOL
		
	
	
		
			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 | 
