2016-12-23 06:58:47 +01:00

2226 lines
48 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css"/>
</head>
<body>
<div id="container">
<div id="product">
<div id="product_logo"></div>
<div id="product_name"><big><b></b></big></div>
<div id="product_description"></div>
</div>
<div id="main">
<div id="navigation">
<h2>Modules</h2>
<ul><li>
<a href="index.html">index</a>
</li></ul>
<ul>
<li><a href="AI_Balancer.html">AI_Balancer</a></li>
<li><a href="Account.html">Account</a></li>
<li><a href="Airbase.html">Airbase</a></li>
<li><a href="AirbasePolice.html">AirbasePolice</a></li>
<li><a href="Assign.html">Assign</a></li>
<li>Base</li>
<li><a href="Cargo.html">Cargo</a></li>
<li><a href="CleanUp.html">CleanUp</a></li>
<li><a href="Client.html">Client</a></li>
<li><a href="CommandCenter.html">CommandCenter</a></li>
<li><a href="Controllable.html">Controllable</a></li>
<li><a href="Database.html">Database</a></li>
<li><a href="Detection.html">Detection</a></li>
<li><a href="Escort.html">Escort</a></li>
<li><a href="Event.html">Event</a></li>
<li><a href="Fsm.html">Fsm</a></li>
<li><a href="Group.html">Group</a></li>
<li><a href="Identifiable.html">Identifiable</a></li>
<li><a href="MOVEMENT.html">MOVEMENT</a></li>
<li><a href="Menu.html">Menu</a></li>
<li><a href="Message.html">Message</a></li>
<li><a href="MissileTrainer.html">MissileTrainer</a></li>
<li><a href="Mission.html">Mission</a></li>
<li><a href="Object.html">Object</a></li>
<li><a href="Patrol.html">Patrol</a></li>
<li><a href="Point.html">Point</a></li>
<li><a href="Positionable.html">Positionable</a></li>
<li><a href="Process_JTAC.html">Process_JTAC</a></li>
<li><a href="Process_Pickup.html">Process_Pickup</a></li>
<li><a href="Route.html">Route</a></li>
<li><a href="ScheduleDispatcher.html">ScheduleDispatcher</a></li>
<li><a href="Scheduler.html">Scheduler</a></li>
<li><a href="Scoring.html">Scoring</a></li>
<li><a href="Sead.html">Sead</a></li>
<li><a href="Set.html">Set</a></li>
<li><a href="Smoke.html">Smoke</a></li>
<li><a href="Spawn.html">Spawn</a></li>
<li><a href="Static.html">Static</a></li>
<li><a href="Task.html">Task</a></li>
<li><a href="Task_A2G.html">Task_A2G</a></li>
<li><a href="Task_PICKUP.html">Task_PICKUP</a></li>
<li><a href="Task_SEAD.html">Task_SEAD</a></li>
<li><a href="Unit.html">Unit</a></li>
<li><a href="Utils.html">Utils</a></li>
<li><a href="Zone.html">Zone</a></li>
<li><a href="routines.html">routines</a></li>
</ul>
</div>
<div id="content">
<h1>Module <code>Base</code></h1>
<p>This module contains the BASE class.</p>
<h1>1) <a href="##(BASE)">#BASE</a> class</h1>
<p>The <a href="##(BASE)">#BASE</a> class is the super class for all the classes defined within MOOSE.</p>
<p>It handles:</p>
<ul>
<li>The construction and inheritance of child classes.</li>
<li>The tracing of objects during mission execution within the <strong>DCS.log</strong> file, under the <strong>"Saved Games\DCS\Logs"</strong> folder.</li>
</ul>
<p>Note: Normally you would not use the BASE class unless you are extending the MOOSE framework with new classes.</p>
<h2>1.1) BASE constructor</h2>
<p>Any class derived from BASE, must use the <a href="Core.Base.html##(BASE).New">Core.Base#BASE.New</a> method how this is done.</p>
<h2>1.2) BASE Trace functionality</h2>
<p>The BASE class contains trace methods to trace progress within a mission execution of a certain object.
Note that these trace methods are inherited by each MOOSE class interiting BASE.
As such, each object created from derived class from BASE can use the tracing functions to trace its execution.</p>
<h3>1.2.1) Tracing functions</h3>
<p>There are basically 3 types of tracing methods available within BASE:</p>
<ul>
<li><a href="##(BASE).F">BASE.F</a>: Trace the beginning of a function and its given parameters. An F is indicated at column 44 in the DCS.log file.</li>
<li><a href="##(BASE).T">BASE.T</a>: Trace further logic within a function giving optional variables or parameters. A T is indicated at column 44 in the DCS.log file.</li>
<li><a href="##(BASE).E">BASE.E</a>: Trace an exception within a function giving optional variables or parameters. An E is indicated at column 44 in the DCS.log file. An exception will always be traced.</li>
</ul>
<h3>1.2.2) Tracing levels</h3>
<p>There are 3 tracing levels within MOOSE. <br/>
These tracing levels were defined to avoid bulks of tracing to be generated by lots of objects.</p>
<p>As such, the F and T methods have additional variants to trace level 2 and 3 respectively:</p>
<ul>
<li><a href="##(BASE).F2">BASE.F2</a>: Trace the beginning of a function and its given parameters with tracing level 2.</li>
<li><a href="##(BASE).F3">BASE.F3</a>: Trace the beginning of a function and its given parameters with tracing level 3.</li>
<li><a href="##(BASE).T2">BASE.T2</a>: Trace further logic within a function giving optional variables or parameters with tracing level 2.</li>
<li><a href="##(BASE).T3">BASE.T3</a>: Trace further logic within a function giving optional variables or parameters with tracing level 3.</li>
</ul>
<h3>1.2.3) Trace activation.</h3>
<p>Tracing can be activated in several ways:</p>
<ul>
<li>Switch tracing on or off through the <a href="##(BASE).TraceOnOff">BASE.TraceOnOff</a>() method.</li>
<li>Activate all tracing through the <a href="##(BASE).TraceAll">BASE.TraceAll</a>() method.</li>
<li>Activate only the tracing of a certain class (name) through the <a href="##(BASE).TraceClass">BASE.TraceClass</a>() method.</li>
<li>Activate only the tracing of a certain method of a certain class through the <a href="##(BASE).TraceClassMethod">BASE.TraceClassMethod</a>() method.</li>
<li>Activate only the tracing of a certain level through the <a href="##(BASE).TraceLevel">BASE.TraceLevel</a>() method.
<h3>1.2.4) Check if tracing is on.</h3></li>
</ul>
<p>The method <a href="##(BASE).IsTrace">BASE.IsTrace</a>() will validate if tracing is activated or not.</p>
<h2>1.3 DCS simulator Event Handling</h2>
<p>The BASE class provides methods to catch DCS Events. These are events that are triggered from within the DCS simulator,
and handled through lua scripting. MOOSE provides an encapsulation to handle these events more efficiently.
Therefore, the BASE class exposes the following event handling functions:</p>
<ul>
<li><a href="##(BASE).EventOnBirth">BASE.EventOnBirth</a>(): Handle the birth of a new unit.</li>
<li><a href="##(BASE).EventOnBaseCaptured">BASE.EventOnBaseCaptured</a>(): Handle the capturing of an airbase or a helipad.</li>
<li><a href="##(BASE).EventOnCrash">BASE.EventOnCrash</a>(): Handle the crash of a unit.</li>
<li><a href="##(BASE).EventOnDead">BASE.EventOnDead</a>(): Handle the death of a unit.</li>
<li><a href="##(BASE).EventOnEjection">BASE.EventOnEjection</a>(): Handle the ejection of a player out of an airplane.</li>
<li><a href="##(BASE).EventOnEngineShutdown">BASE.EventOnEngineShutdown</a>(): Handle the shutdown of an engine.</li>
<li><a href="##(BASE).EventOnEngineStartup">BASE.EventOnEngineStartup</a>(): Handle the startup of an engine.</li>
<li><a href="##(BASE).EventOnHit">BASE.EventOnHit</a>(): Handle the hit of a shell to a unit.</li>
<li><a href="##(BASE).EventOnHumanFailure">BASE.EventOnHumanFailure</a>(): No a clue ...</li>
<li><a href="##(BASE).EventOnLand">BASE.EventOnLand</a>(): Handle the event when a unit lands. </li>
<li><a href="##(BASE).EventOnMissionStart">BASE.EventOnMissionStart</a>(): Handle the start of the mission.</li>
<li><a href="##(BASE).EventOnPilotDead">BASE.EventOnPilotDead</a>(): Handle the event when a pilot is dead.</li>
<li><a href="##(BASE).EventOnPlayerComment">BASE.EventOnPlayerComment</a>(): Handle the event when a player posts a comment.</li>
<li><a href="##(BASE).EventOnPlayerEnterUnit">BASE.EventOnPlayerEnterUnit</a>(): Handle the event when a player enters a unit.</li>
<li><a href="##(BASE).EventOnPlayerLeaveUnit">BASE.EventOnPlayerLeaveUnit</a>(): Handle the event when a player leaves a unit.</li>
<li><a href="##(BASE).EventOnBirthPlayerMissionEnd">BASE.EventOnBirthPlayerMissionEnd</a>(): Handle the event when a player ends the mission. (Not a clue what that does).</li>
<li><a href="##(BASE).EventOnRefueling">BASE.EventOnRefueling</a>(): Handle the event when a unit is refueling. </li>
<li><a href="##(BASE).EventOnShootingEnd">BASE.EventOnShootingEnd</a>(): Handle the event when a unit starts shooting (guns).</li>
<li><a href="##(BASE).EventOnShootingStart">BASE.EventOnShootingStart</a>(): Handle the event when a unit ends shooting (guns). </li>
<li><a href="##(BASE).EventOnShot">BASE.EventOnShot</a>(): Handle the event when a unit shot a missile.</li>
<li><a href="##(BASE).EventOnTakeOff">BASE.EventOnTakeOff</a>(): Handle the event when a unit takes off from a runway.</li>
<li><a href="##(BASE).EventOnTookControl">BASE.EventOnTookControl</a>(): Handle the event when a player takes control of a unit.</li>
</ul>
<p>The EventOn() methods provide the <a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> structure to the event handling function.
The <a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> structure contains an enriched data set of information about the event being handled.</p>
<p>Find below an example of the prototype how to write an event handling function: </p>
<pre><code> CommandCenter:EventOnPlayerEnterUnit(
--- @param #COMMANDCENTER self
-- @param Core.Event#EVENTDATA EventData
function( self, EventData )
local PlayerUnit = EventData.IniUnit
for MissionID, Mission in pairs( self:GetMissions() ) do
local Mission = Mission -- Tasking.Mission#MISSION
Mission:JoinUnit( PlayerUnit )
Mission:ReportDetails()
end
end
)
</code></pre>
<p>Note the function( self, EventData ). It takes two parameters:</p>
<ul>
<li>self = the object that is handling the EventOnPlayerEnterUnit.</li>
<li>EventData = the <a href="Core.Event.html##(EVENTDATA)">Core.Event#EVENTDATA</a> structure, containing more information of the Event.</li>
</ul>
<h2>1.4) Class identification methods</h2>
<p>BASE provides methods to get more information of each object:</p>
<ul>
<li><a href="##(BASE).GetClassID">BASE.GetClassID</a>(): Gets the ID (number) of the object. Each object created is assigned a number, that is incremented by one.</li>
<li><a href="##(BASE).GetClassName">BASE.GetClassName</a>(): Gets the name of the object, which is the name of the class the object was instantiated from.</li>
<li><a href="##(BASE).GetClassNameAndID">BASE.GetClassNameAndID</a>(): Gets the name and ID of the object.</li>
</ul>
<h2>1.10) BASE Inheritance (tree) support</h2>
<p>The following methods are available to support inheritance:</p>
<ul>
<li><a href="##(BASE).Inherit">BASE.Inherit</a>: Inherits from a class.</li>
<li><a href="##(BASE).GetParent">BASE.GetParent</a>: Returns the parent object from the object it is handling, or nil if there is no parent object.</li>
</ul>
<hr/>
<h1><strong>API CHANGE HISTORY</strong></h1>
<p>The underlying change log documents the API changes. Please read this carefully. The following notation is used:</p>
<ul>
<li><strong>Added</strong> parts are expressed in bold type face.</li>
<li><em>Removed</em> parts are expressed in italic type face.</li>
</ul>
<p>YYYY-MM-DD: CLASS:<strong>NewFunction</strong>( Params ) replaces CLASS:<em>OldFunction</em>( Params )
YYYY-MM-DD: CLASS:<strong>NewFunction( Params )</strong> added</p>
<p>Hereby the change log:</p>
<hr/>
<h1><strong>AUTHORS and CONTRIBUTIONS</strong></h1>
<h3>Contributions:</h3>
<ul>
<li>None.</li>
</ul>
<h3>Authors:</h3>
<ul>
<li><strong>FlightControl</strong>: Design &amp; Programming</li>
</ul>
<h2>Global(s)</h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="#BASE">BASE</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="#FORMATION">FORMATION</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(BASE)">Type <code>BASE</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).AddEvent">BASE:AddEvent(Event, EventFunction)</a></td>
<td class="summary">
<p>Set a new listener for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClassID">BASE.ClassID</a></td>
<td class="summary">
<p>The ID number of the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClassName">BASE.ClassName</a></td>
<td class="summary">
<p>The name of the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClassNameAndID">BASE.ClassNameAndID</a></td>
<td class="summary">
<p>The name of the class concatenated with the ID number of the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).ClearState">BASE:ClearState(Object, StateName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).CreateEventBirth">BASE:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)</a></td>
<td class="summary">
<p>Creation of a Birth Event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).CreateEventCrash">BASE:CreateEventCrash(EventTime, Initiator)</a></td>
<td class="summary">
<p>Creation of a Crash Event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).DisableEvents">BASE:DisableEvents()</a></td>
<td class="summary">
<p>Disable the event listeners for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).E">BASE:E(Arguments)</a></td>
<td class="summary">
<p>Log an exception which will be traced always.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EnableEvents">BASE:EnableEvents()</a></td>
<td class="summary">
<p>Enable the event listeners for the class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Event">BASE:Event()</a></td>
<td class="summary">
<p>Returns the event dispatcher</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnBaseCaptured">BASE:EventOnBaseCaptured(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>BASE_CAPTURED event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnBirth">BASE:EventOnBirth(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_BIRTH event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnCrash">BASE:EventOnCrash(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_CRASH event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnDead">BASE:EventOnDead(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_DEAD event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnEjection">BASE:EventOnEjection(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_EJECTION event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnEngineShutdown">BASE:EventOnEngineShutdown(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>ENGINE_SHUTDOWN event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnEngineStartup">BASE:EventOnEngineStartup(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>ENGINE_STARTUP event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnHit">BASE:EventOnHit(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_HIT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnHumanFailure">BASE:EventOnHumanFailure(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>HUMAN_FAILURE event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnLand">BASE:EventOnLand(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_LAND event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnMissionStart">BASE:EventOnMissionStart(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>MISSION_START event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnPilotDead">BASE:EventOnPilotDead(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>PILOT_DEAD event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnPlayerComment">BASE:EventOnPlayerComment(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>PLAYER_COMMENT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnPlayerEnterUnit">BASE:EventOnPlayerEnterUnit(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>PLAYER_ENTER_UNIT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnPlayerLeaveUnit">BASE:EventOnPlayerLeaveUnit(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>PLAYER_LEAVE_UNIT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnPlayerMissionEnd">BASE:EventOnPlayerMissionEnd(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>MISSION_END event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnRefueling">BASE:EventOnRefueling(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_REFUELING event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnRefuelingStop">BASE:EventOnRefuelingStop(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>REFUELING_STOP event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnShootingEnd">BASE:EventOnShootingEnd(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>SHOOTING_END event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnShootingStart">BASE:EventOnShootingStart(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>SHOOTING_START event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnShot">BASE:EventOnShot(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_SHOT event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnTakeOff">BASE:EventOnTakeOff(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S_EVENT_TAKEOFF event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventOnTookControl">BASE:EventOnTookControl(EventFunction)</a></td>
<td class="summary">
<p>Subscribe to a S<em>EVENT</em>TOOK_CONTROL event.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).EventRemoveAll">BASE:EventRemoveAll()</a></td>
<td class="summary">
<p>Remove all subscribed events</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Events">BASE.Events</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F">BASE:F(Arguments)</a></td>
<td class="summary">
<p>Trace a function call.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F2">BASE:F2(Arguments)</a></td>
<td class="summary">
<p>Trace a function call level 2.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).F3">BASE:F3(Arguments)</a></td>
<td class="summary">
<p>Trace a function call level 3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassID">BASE:GetClassID()</a></td>
<td class="summary">
<p>Get the ClassID of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassName">BASE:GetClassName()</a></td>
<td class="summary">
<p>Get the ClassName of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetClassNameAndID">BASE:GetClassNameAndID()</a></td>
<td class="summary">
<p>Get the ClassName + ClassID of the class instance.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetParent">BASE:GetParent(Child)</a></td>
<td class="summary">
<p>This is the worker method to retrieve the Parent class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).GetState">BASE:GetState(Object, StateName)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).Inherit">BASE:Inherit(Child, Parent)</a></td>
<td class="summary">
<p>This is the worker method to inherit from a parent class.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).IsTrace">BASE:IsTrace()</a></td>
<td class="summary">
<p>Enquires if tracing is on (for the class).</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).New">BASE:New()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).SetState">BASE:SetState(Object, StateName, State)</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).States">BASE.States</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T">BASE:T(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 1.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T2">BASE:T2(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 2.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).T3">BASE:T3(Arguments)</a></td>
<td class="summary">
<p>Trace a function logic level 3.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceAll">BASE:TraceAll(TraceAll)</a></td>
<td class="summary">
<p>Trace all methods in MOOSE</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClass">BASE:TraceClass(Class)</a></td>
<td class="summary">
<p>Set tracing for a class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceClassMethod">BASE:TraceClassMethod(Class, Method)</a></td>
<td class="summary">
<p>Set tracing for a specific method of class</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceLevel">BASE:TraceLevel(Level)</a></td>
<td class="summary">
<p>Set trace level</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).TraceOnOff">BASE:TraceOnOff(TraceOnOff)</a></td>
<td class="summary">
<p>Set trace on or off
Note that when trace is off, no debug statement is performed, increasing performance!
When Moose is loaded statically, (as one file), tracing is switched off by default.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE)._Destructor">BASE:_Destructor()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE)._F">BASE:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</a></td>
<td class="summary">
<p>Trace a function call.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE)._SetDestructor">BASE:_SetDestructor()</a></td>
<td class="summary">
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE)._T">BASE:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</a></td>
<td class="summary">
<p>Trace a function logic.</p>
</td>
</tr>
<tr>
<td class="name" nowrap="nowrap"><a href="##(BASE).onEvent">BASE:onEvent(event)</a></td>
<td class="summary">
</td>
</tr>
</table>
<h2><a id="#(FORMATION)">Type <code>FORMATION</code></a></h2>
<table class="function_list">
<tr>
<td class="name" nowrap="nowrap"><a href="##(FORMATION).Cone">FORMATION.Cone</a></td>
<td class="summary">
<p>A cone formation.</p>
</td>
</tr>
</table>
<h2>Global(s)</h2>
<dl class="function">
<dt>
<em><a href="##(BASE)">#BASE</a></em>
<a id="BASE" >
<strong>BASE</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<em><a href="##(FORMATION)">#FORMATION</a></em>
<a id="FORMATION" >
<strong>FORMATION</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<h2><a id="#(Base)" >Type <code>Base</code></a></h2>
<h2><a id="#(BASE)" >Type <code>BASE</code></a></h2>
<p>The BASE Class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(BASE).AddEvent" >
<strong>BASE:AddEvent(Event, EventFunction)</strong>
</a>
</dt>
<dd>
<p>Set a new listener for the class.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Event)">Dcs.DCSTypes#Event</a> Event </em></code>: </p>
</li>
<li>
<p><code><em>#function EventFunction </em></code>: </p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClassID" >
<strong>BASE.ClassID</strong>
</a>
</dt>
<dd>
<p>The ID number of the class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClassName" >
<strong>BASE.ClassName</strong>
</a>
</dt>
<dd>
<p>The name of the class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClassNameAndID" >
<strong>BASE.ClassNameAndID</strong>
</a>
</dt>
<dd>
<p>The name of the class concatenated with the ID number of the class.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).ClearState" >
<strong>BASE:ClearState(Object, StateName)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Object </em></code>: </p>
</li>
<li>
<p><code><em> StateName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).CreateEventBirth" >
<strong>BASE:CreateEventBirth(EventTime, Initiator, IniUnitName, place, subplace)</strong>
</a>
</dt>
<dd>
<p>Creation of a Birth Event.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Time)">Dcs.DCSTypes#Time</a> EventTime </em></code>:
The time stamp of the event.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSWrapper.Object.html##(Object)">Dcs.DCSWrapper.Object#Object</a> Initiator </em></code>:
The initiating object of the event.</p>
</li>
<li>
<p><code><em>#string IniUnitName </em></code>:
The initiating unit name.</p>
</li>
<li>
<p><code><em> place </em></code>: </p>
</li>
<li>
<p><code><em> subplace </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).CreateEventCrash" >
<strong>BASE:CreateEventCrash(EventTime, Initiator)</strong>
</a>
</dt>
<dd>
<p>Creation of a Crash Event.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em><a href="Dcs.DCSTypes.html##(Time)">Dcs.DCSTypes#Time</a> EventTime </em></code>:
The time stamp of the event.</p>
</li>
<li>
<p><code><em><a href="Dcs.DCSWrapper.Object.html##(Object)">Dcs.DCSWrapper.Object#Object</a> Initiator </em></code>:
The initiating object of the event.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).DisableEvents" >
<strong>BASE:DisableEvents()</strong>
</a>
</dt>
<dd>
<p>Disable the event listeners for the class.</p>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).E" >
<strong>BASE:E(Arguments)</strong>
</a>
</dt>
<dd>
<p>Log an exception which will be traced always.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EnableEvents" >
<strong>BASE:EnableEvents()</strong>
</a>
</dt>
<dd>
<p>Enable the event listeners for the class.</p>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).Event" >
<strong>BASE:Event()</strong>
</a>
</dt>
<dd>
<p>Returns the event dispatcher</p>
<h3>Return value</h3>
<p><em><a href="Core.Event.html##(EVENT)">Core.Event#EVENT</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnBaseCaptured" >
<strong>BASE:EventOnBaseCaptured(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>BASE_CAPTURED event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnBirth" >
<strong>BASE:EventOnBirth(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_BIRTH event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnCrash" >
<strong>BASE:EventOnCrash(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_CRASH event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnDead" >
<strong>BASE:EventOnDead(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_DEAD event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnEjection" >
<strong>BASE:EventOnEjection(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_EJECTION event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnEngineShutdown" >
<strong>BASE:EventOnEngineShutdown(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>ENGINE_SHUTDOWN event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnEngineStartup" >
<strong>BASE:EventOnEngineStartup(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>ENGINE_STARTUP event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnHit" >
<strong>BASE:EventOnHit(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_HIT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnHumanFailure" >
<strong>BASE:EventOnHumanFailure(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>HUMAN_FAILURE event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnLand" >
<strong>BASE:EventOnLand(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_LAND event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnMissionStart" >
<strong>BASE:EventOnMissionStart(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>MISSION_START event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnPilotDead" >
<strong>BASE:EventOnPilotDead(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>PILOT_DEAD event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnPlayerComment" >
<strong>BASE:EventOnPlayerComment(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>PLAYER_COMMENT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnPlayerEnterUnit" >
<strong>BASE:EventOnPlayerEnterUnit(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>PLAYER_ENTER_UNIT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnPlayerLeaveUnit" >
<strong>BASE:EventOnPlayerLeaveUnit(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>PLAYER_LEAVE_UNIT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnPlayerMissionEnd" >
<strong>BASE:EventOnPlayerMissionEnd(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>MISSION_END event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnRefueling" >
<strong>BASE:EventOnRefueling(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_REFUELING event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnRefuelingStop" >
<strong>BASE:EventOnRefuelingStop(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>REFUELING_STOP event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnShootingEnd" >
<strong>BASE:EventOnShootingEnd(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>SHOOTING_END event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnShootingStart" >
<strong>BASE:EventOnShootingStart(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>SHOOTING_START event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnShot" >
<strong>BASE:EventOnShot(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_SHOT event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnTakeOff" >
<strong>BASE:EventOnTakeOff(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S_EVENT_TAKEOFF event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventOnTookControl" >
<strong>BASE:EventOnTookControl(EventFunction)</strong>
</a>
</dt>
<dd>
<p>Subscribe to a S<em>EVENT</em>TOOK_CONTROL event.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#function EventFunction </em></code>:
The function to be called when the event occurs for the unit.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).EventRemoveAll" >
<strong>BASE:EventRemoveAll()</strong>
</a>
</dt>
<dd>
<p>Remove all subscribed events</p>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(BASE).Events" >
<strong>BASE.Events</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F" >
<strong>BASE:F(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F2" >
<strong>BASE:F2(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call level 2.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).F3" >
<strong>BASE:F3(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function call level 3.</p>
<p>Must be at the beginning of the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassID" >
<strong>BASE:GetClassID()</strong>
</a>
</dt>
<dd>
<p>Get the ClassID of the class instance.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassID of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassName" >
<strong>BASE:GetClassName()</strong>
</a>
</dt>
<dd>
<p>Get the ClassName of the class instance.</p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassName of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetClassNameAndID" >
<strong>BASE:GetClassNameAndID()</strong>
</a>
</dt>
<dd>
<p>Get the ClassName + ClassID of the class instance.</p>
<p>The ClassName + ClassID is formatted as '%s#%09d'. </p>
<h3>Return value</h3>
<p><em>#string:</em>
The ClassName + ClassID of the class instance.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetParent" >
<strong>BASE:GetParent(Child)</strong>
</a>
</dt>
<dd>
<p>This is the worker method to retrieve the Parent class.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Child </em></code>:
is the Child class from which the Parent class needs to be retrieved.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).GetState" >
<strong>BASE:GetState(Object, StateName)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Object </em></code>: </p>
</li>
<li>
<p><code><em> StateName </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).Inherit" >
<strong>BASE:Inherit(Child, Parent)</strong>
</a>
</dt>
<dd>
<p>This is the worker method to inherit from a parent class.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Child </em></code>:
is the Child class that inherits.</p>
</li>
<li>
<p><code><em><a href="##(BASE)">#BASE</a> Parent </em></code>:
is the Parent class that the Child inherits from.</p>
</li>
</ul>
<h3>Return value</h3>
<p><em><a href="##(BASE)">#BASE</a>:</em>
Child</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).IsTrace" >
<strong>BASE:IsTrace()</strong>
</a>
</dt>
<dd>
<p>Enquires if tracing is on (for the class).</p>
<h3>Return value</h3>
<p><em>#boolean:</em></p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).New" >
<strong>BASE:New()</strong>
</a>
</dt>
<dd>
<p> @todo need to investigate if the deepCopy is really needed... Don't think so.</p>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).SetState" >
<strong>BASE:SetState(Object, StateName, State)</strong>
</a>
</dt>
<dd>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Object </em></code>: </p>
</li>
<li>
<p><code><em> StateName </em></code>: </p>
</li>
<li>
<p><code><em> State </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<em></em>
<a id="#(BASE).States" >
<strong>BASE.States</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T" >
<strong>BASE:T(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic level 1.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T2" >
<strong>BASE:T2(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic level 2.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).T3" >
<strong>BASE:T3(Arguments)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic level 3.</p>
<p>Can be anywhere within the function logic.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceAll" >
<strong>BASE:TraceAll(TraceAll)</strong>
</a>
</dt>
<dd>
<p>Trace all methods in MOOSE</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean TraceAll </em></code>:
true = trace all methods in MOOSE.</p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceClass" >
<strong>BASE:TraceClass(Class)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a class</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceClassMethod" >
<strong>BASE:TraceClassMethod(Class, Method)</strong>
</a>
</dt>
<dd>
<p>Set tracing for a specific method of class</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em>#string Class </em></code>: </p>
</li>
<li>
<p><code><em>#string Method </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceLevel" >
<strong>BASE:TraceLevel(Level)</strong>
</a>
</dt>
<dd>
<p>Set trace level</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#number Level </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).TraceOnOff" >
<strong>BASE:TraceOnOff(TraceOnOff)</strong>
</a>
</dt>
<dd>
<p>Set trace on or off
Note that when trace is off, no debug statement is performed, increasing performance!
When Moose is loaded statically, (as one file), tracing is switched off by default.</p>
<p>So tracing must be switched on manually in your mission if you are using Moose statically.
When moose is loading dynamically (for moose class development), tracing is switched on by default.</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em>#boolean TraceOnOff </em></code>:
Switch the tracing on or off.</p>
</li>
</ul>
<h3>Usage:</h3>
<pre class="example"><code>-- Switch the tracing On
BASE:TraceOnOff( true )
-- Switch the tracing Off
BASE:TraceOnOff( false )</code></pre>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE)._Destructor" >
<strong>BASE:_Destructor()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE)._F" >
<strong>BASE:_F(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</strong>
</a>
</dt>
<dd>
<p>Trace a function call.</p>
<p>This function is private.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
<li>
<p><code><em> DebugInfoCurrentParam </em></code>: </p>
</li>
<li>
<p><code><em> DebugInfoFromParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE)._SetDestructor" >
<strong>BASE:_SetDestructor()</strong>
</a>
</dt>
<dd>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE)._T" >
<strong>BASE:_T(Arguments, DebugInfoCurrentParam, DebugInfoFromParam)</strong>
</a>
</dt>
<dd>
<p>Trace a function logic.</p>
<h3>Parameters</h3>
<ul>
<li>
<p><code><em> Arguments </em></code>:
A #table or any field.</p>
</li>
<li>
<p><code><em> DebugInfoCurrentParam </em></code>: </p>
</li>
<li>
<p><code><em> DebugInfoFromParam </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<dl class="function">
<dt>
<a id="#(BASE).onEvent" >
<strong>BASE:onEvent(event)</strong>
</a>
</dt>
<dd>
<p> TODO: Complete Dcs.DCSTypes#Event structure. <br/>
- The main event handling function... This function captures all events generated for the class.
@param #BASE self
@param Dcs.DCSTypes#Event event</p>
<h3>Parameter</h3>
<ul>
<li>
<p><code><em> event </em></code>: </p>
</li>
</ul>
</dd>
</dl>
<h2><a id="#(FORMATION)" >Type <code>FORMATION</code></a></h2>
<p>The Formation Class</p>
<h3>Field(s)</h3>
<dl class="function">
<dt>
<a id="#(FORMATION).Cone" >
<strong>FORMATION.Cone</strong>
</a>
</dt>
<dd>
<p>A cone formation.</p>
</dd>
</dl>
</div>
</div>
</body>
</html>