mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-08-15 10:47:21 +00:00
96 lines
2.0 KiB
Lua
96 lines
2.0 KiB
Lua
--- **Wrapper** -- OBJECT wraps the DCS Object derived objects.
|
|
--
|
|
-- ===
|
|
--
|
|
-- ### Author: **FlightControl**
|
|
--
|
|
-- ### Contributions:
|
|
--
|
|
-- ===
|
|
--
|
|
-- @module Wrapper.Object
|
|
|
|
|
|
--- @type OBJECT
|
|
-- @extends Core.Base#BASE
|
|
-- @field #string ObjectName The name of the Object.
|
|
|
|
|
|
--- OBJECT handles 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:
|
|
--
|
|
-- * @{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.DCSWrapper.Object#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.DCSWrapper.Object#Object.ID ObjectID
|
|
-- @return #nil The DCS Object is not existing or alive.
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|