funkyfranky 64355fb772 Warehouse v0.2.6
Several fixes including BoundZone.
Warehouse ID is not number not string.
Updated Documentation.
Fixed bug that invalid requests are not recognized.
2018-08-26 17:29:31 +02:00

96 lines
2.1 KiB
Lua

--- **Wrapper** -- OBJECT wraps the DCS Object derived objects.
--
-- ===
--
-- ### Author: **FlightControl**
--
-- ### Contributions:
--
-- ===
--
-- @module Wrapper.Object
-- @image MOOSE.JPG
--- @type OBJECT
-- @extends Core.Base#BASE
-- @field #string ObjectName The name of the Object.
--- Wrapper class to hendle the DCS Object objects.
--
-- * Support all DCS Object APIs.
-- * Enhance with Object specific APIs not in the DCS Object API set.
-- * Manage the "state" of the DCS Object.
--
-- ## OBJECT constructor:
--
-- The OBJECT class provides the following functions to construct a OBJECT instance:
--
-- * @{Wrapper.Object#OBJECT.New}(): Create a OBJECT instance.
--
-- @field #OBJECT
OBJECT = {
ClassName = "OBJECT",
ObjectName = "",
}
--- A DCSObject
-- @type DCSObject
-- @field id_ The ID of the controllable in DCS
--- Create a new OBJECT from a DCSObject
-- @param #OBJECT self
-- @param DCS#Object ObjectName The Object name
-- @return #OBJECT self
function OBJECT:New( ObjectName, Test )
local self = BASE:Inherit( self, BASE:New() )
self:F2( ObjectName )
self.ObjectName = ObjectName
return self
end
--- Returns the unit's unique identifier.
-- @param Wrapper.Object#OBJECT self
-- @return DCS#Object.ID ObjectID or #nil if the DCS Object is not existing or alive. Note that the ID is passed as a string and not a number.
function OBJECT:GetID()
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectID = DCSObject:getID()
return ObjectID
end
BASE:E( { "Cannot GetID", Name = self.ObjectName, Class = self:GetClassName() } )
return nil
end
--- Destroys the OBJECT.
-- @param #OBJECT self
-- @return #boolean true if the object is destroyed.
-- @return #nil The DCS Unit is not existing or alive.
function OBJECT:Destroy()
local DCSObject = self:GetDCSObject()
if DCSObject then
--BASE:CreateEventCrash( timer.getTime(), DCSObject )
DCSObject:destroy( false )
return true
end
BASE:E( { "Cannot Destroy", Name = self.ObjectName, Class = self:GetClassName() } )
return nil
end