Fixed GetID bug detected in missiletrainer class.

- Was part of a larger issue related to the class hierarchy between
Object -> Identifiable -> Positionable ...
- Also fixed AIRBASE class fitting now the class hierarchy.
This commit is contained in:
FlightControl
2016-06-28 11:59:30 +02:00
parent dc644df47e
commit 27bb51e69c
30 changed files with 68 additions and 1037 deletions

View File

@@ -51,163 +51,22 @@ function OBJECT:New( ObjectName )
end
--- Returns if the Object is alive.
--- Returns the unit's unique identifier.
-- @param Object#OBJECT self
-- @return #boolean true if Object is alive.
-- @return DCSObject#Object.ID ObjectID
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:IsAlive()
function OBJECT:GetID()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectIsAlive = DCSObject:isExist()
return ObjectIsAlive
local ObjectID = DCSObject:getID()
return ObjectID
end
return false
end
--- Returns DCS Object object name.
-- The function provides access to non-activated objects too.
-- @param Object#OBJECT self
-- @return #string The name of the DCS Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetName()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectName = self.ObjectName
return ObjectName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the type name of the DCS Object.
-- @param Object#OBJECT self
-- @return #string The type name of the DCS Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetTypeName()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectTypeName = DCSObject:getTypeName()
self:T3( ObjectTypeName )
return ObjectTypeName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the Object's callsign - the localized string.
-- @param Object#OBJECT self
-- @return #string The Callsign of the Object.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCallSign()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCallSign = DCSObject:getCallsign()
return ObjectCallSign
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns the DCS Object category name as defined within the DCS Object Descriptor.
-- @param Object#OBJECT self
-- @return #string The DCS Object Category Name
function OBJECT:GetCategoryName()
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCategoryName = _CategoryName[ self:GetDesc().category ]
return ObjectCategoryName
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns coalition of the Object.
-- @param Object#OBJECT self
-- @return DCSCoalitionObject#coalition.side The side of the coalition.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCoalition()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCoalition = DCSObject:getCoalition()
self:T3( ObjectCoalition )
return ObjectCoalition
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns country of the Object.
-- @param Object#OBJECT self
-- @return DCScountry#country.id The country identifier.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetCountry()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectCountry = DCSObject:getCountry()
self:T3( ObjectCountry )
return ObjectCountry
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end
--- Returns Object descriptor. Descriptor type depends on Object category.
-- @param Object#OBJECT self
-- @return DCSObject#Object.Desc The Object descriptor.
-- @return #nil The DCS Object is not existing or alive.
function OBJECT:GetDesc()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectDesc = DCSObject:getDesc()
self:T2( ObjectDesc )
return ObjectDesc
end
self:E( self.ClassName .. " " .. self.ObjectName .. " not found!" )
return nil
end