Add checks and trace for RADIO:New

This commit is contained in:
Grey-Echo 2017-03-10 23:33:56 +01:00
parent f35269936f
commit a9c7cd4e18
3 changed files with 21 additions and 15 deletions

View File

@ -30,19 +30,22 @@ RADIO = {
Loop = 0,
}
-- @TODO Manage Trace in all functions below
--- Create a new RADIO Object. This doesn't broadcast a transmission, though, use @{Radio#RADIO.Broadcast} to actually broadcast
-- @param #POSITIONABLE Positionable
-- @return self
--- Create a new RADIO Object. This doesn't broadcast a transmission, though, use @{#RADIO.Broadcast} to actually broadcast
-- @param Wrapper.Positionable#POSITIONABLE Positionable
-- @return #RADIO Radio
-- @return #nil If Positionable is invalid
-- @usage
-- -- If you want to create a RADIO, you probably should use @{Positionable#POSITIONABLE.GetRadio}
-- -- If you want to create a RADIO, you probably should use @{Wrapper.Positionable#POSITIONABLE.GetRadio} instead
function RADIO:New(positionable)
local self = BASE:Inherit( self, BASE:New() )
self:F(positionable)
self.Positionable = positionable
return self
if positionable:GetPointVec2() ~= nil then -- It's stupid, but the only way I found to make sure positionable is valid
self.Positionable = positionable
return self
else
self:E({"The passed positionable is invalid, no RADIO created : ", positionable})
return nil
end
end
--- Add the 'l10n/DEFAULT/' in the file name if necessary
@ -51,7 +54,7 @@ end
-- @return #string FileName Corrected file name
-- @usage
-- -- internal use only
function RADIO:VerifyFileName(filename)
function RADIO:_VerifyFileName(filename)
if filename:find("l10n/DEFAULT/") == nil then
filename = "l10n/DEFAULT/" .. filename
end
@ -72,7 +75,7 @@ end
-- @TODO : Verify the type of passed args and throw errors when necessary
function RADIO:NewGenericTransmission(...)
self:F2(arg)
self.FileName = RADIO:VerifyFileName(arg[1])
self.FileName = RADIO:_VerifyFileName(arg[1])
if arg[2] ~= nil then
self.Frequency = arg[2] * 1000 -- Convert to Hz
end
@ -102,7 +105,7 @@ end
-- -- @TODO : Verify the type of passed args and throw errors when necessary
function RADIO:NewUnitTransmission(...)
self:F2(arg)
self.FileName = RADIO:VerifyFileName(arg[1])
self.FileName = RADIO:_VerifyFileName(arg[1])
if arg[2] ~= nil then
self.Subtitle = arg[2]
end

View File

@ -1,10 +1,13 @@
BASE:TraceAll(1)
BASE:TraceLevel(1)
BASE:TraceOnOff(true)
BASE:TraceClass("RADIO")
BASE:TraceLevel(3)
local Player = UNIT:FindByName("Player")
Player:MessageToAll("MainScript Started 2", 10, "")
local Static = STATIC:FindByName("CommandCenter")
local StaticRadio = Static:GetRadio()
StaticRadio:NewGenericTransmission("Test Voice.ogg", 251000, radio.modulation.AM, 1000)
StaticRadio:NewGenericTransmission("Noise.ogg", 251000, radio.modulation.AM, 1000)
StaticRadio:Broadcast()