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 |