FlightControl 1f90c0c766 Fixed respawn bug in AI_BALANCER + Scheduler bug
AI_BALANCER respawns back the AI. Bug was in the FSM. In a transition,
when states are the same, the events SHOULD execute.
Added spawn delay interval option API SetSpawnInterval().
Bug that prevented AI_BALANCER to start if multiple AI_BALANCERs is also
fixed.
Fixed bug in scheduler dispatcher. Multiple schedules for the same
scheduler work now too!
2017-01-08 03:53:05 +01:00

90 lines
2.1 KiB
Lua

--- This module contains the OBJECT class.
--
-- 1) @{Wrapper.Object#OBJECT} class, extends @{Core.Base#BASE}
-- ===========================================================
-- The @{Wrapper.Object#OBJECT} class is a wrapper class to handle 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.
--
-- 1.1) OBJECT constructor:
-- ------------------------------
-- The OBJECT class provides the following functions to construct a OBJECT instance:
--
-- * @{Wrapper.Object#OBJECT.New}(): Create a OBJECT instance.
--
-- 1.2) OBJECT methods:
-- --------------------------
-- The following methods can be used to identify an Object object:
--
-- * @{Wrapper.Object#OBJECT.GetID}(): Returns the ID of the Object object.
--
-- ===
--
-- @module Object
-- @author FlightControl
--- The OBJECT class
-- @type OBJECT
-- @extends Core.Base#BASE
-- @field #string ObjectName The name of the 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()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
local ObjectID = DCSObject:getID()
return ObjectID
end
return nil
end
--- Destroys the OBJECT.
-- @param #OBJECT self
-- @return #nil The DCS Unit is not existing or alive.
function OBJECT:Destroy()
self:F2( self.ObjectName )
local DCSObject = self:GetDCSObject()
if DCSObject then
DCSObject:destroy()
end
return nil
end