Module Base
-This module contains the BASE class.
+Core - BASE forms the basis of the MOOSE framework.
+Each class within the MOOSE framework derives from BASE.
+ +1) #BASE class
-The #BASE class is the super class for all the classes defined within MOOSE.
-It handles:
+All classes within the MOOSE framework are derived from the #BASE class.
+ +BASE provides facilities for :
-
-
- The construction and inheritance of child classes. -
- The tracing of objects during mission execution within the DCS.log file, under the "Saved Games\DCS\Logs" folder. +
- The construction and inheritance of MOOSE classes. +
- The class naming and numbering system. +
- The class hierarchy search system. +
- The tracing of information or objects during mission execution for debuggin purposes. +
- The subscription to DCS events for event handling in MOOSE objects.
Note: Normally you would not use the BASE class unless you are extending the MOOSE framework with new classes.
+Note: The BASE class is an abstract class and is not meant to be used directly.
1.1) BASE constructor
Any class derived from BASE, must use the Base#BASE.New method how this is done.
-1.2) BASE Trace functionality
+1.2) Trace information for debugging
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.
+These trace methods are inherited by each MOOSE class interiting BASE, soeach object created from derived class from BASE can use the tracing methods to trace its execution. -1.2.1) Tracing functions
+Any type of information can be passed to these tracing methods. See the following examples:
-There are basically 3 types of tracing methods available within BASE:
+self:E( "Hello" )
+
+
+Result in the word "Hello" in the dcs.log.
+ +local Array = { 1, nil, "h", { "a","b" }, "x" }
+self:E( Array )
+
+
+Results with the text [1]=1,[3]="h",[4]={[1]="a",[2]="b"},[5]="x"} in the dcs.log.
+ +local Object1 = "Object1"
+local Object2 = 3
+local Object3 = { Object 1, Object 2 }
+self:E( { Object1, Object2, Object3 } )
+
+
+Results with the text [1]={[1]="Object",[2]=3,[3]={[1]="Object",[2]=3}} in the dcs.log.
+ +local SpawnObject = SPAWN:New( "Plane" )
+local GroupObject = GROUP:FindByName( "Group" )
+self:E( { Spawn = SpawnObject, Group = GroupObject } )
+
+
+Results with the text [1]={Spawn={....),Group={...}} in the dcs.log.
+ +Below a more detailed explanation of the different method types for tracing.
+ +1.2.1) Tracing methods categories
+ +There are basically 3 types of tracing methods available:
-
-
- BASE.F: Trace the beginning of a function and its given parameters. An F is indicated at column 44 in the DCS.log file. -
- BASE.T: Trace further logic within a function giving optional variables or parameters. A T is indicated at column 44 in the DCS.log file. -
- BASE.E: 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. +
- BASE.F: Used to trace the entrance of a function and its given parameters. An F is indicated at column 44 in the DCS.log file. +
- BASE.T: Used to trace further logic within a function giving optional variables or parameters. A T is indicated at column 44 in the DCS.log file. +
- BASE.E: Used to always trace information giving optional variables or parameters. An E is indicated at column 44 in the DCS.log file.
1.2.2) Tracing levels
@@ -131,10 +169,11 @@ These tracing levels were defined to avoid bulks of tracing to be generated by l1.2.4) Check if tracing is on.
1.2.4) Check if tracing is on.
+The method BASE.IsTrace() will validate if tracing is activated or not.
1.3 DCS simulator Event Handling
@@ -146,7 +185,7 @@ and handled through lua scripting. MOOSE provides an encapsulation to handle theAt first, the mission designer will need to Subscribe to a specific DCS event for the class. So, when the DCS event occurs, the class will be notified of that event. -There are two functions which you use to subscribe to or unsubscribe from an event.
+There are two methods which you use to subscribe to or unsubscribe from an event.- BASE.HandleEvent(): Subscribe to a DCS Event. @@ -201,20 +240,22 @@ about the event that occurred.
- BASE.Inherit: Inherits from a class. diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index 59202c294..efcd3f237 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -2425,6 +2425,7 @@ The UNIT carrying the package.
-
+
AI_CARGO_UNIT.CargoCarrier
diff --git a/docs/Documentation/Controllable.html b/docs/Documentation/Controllable.html
index f68d33b66..a21da9167 100644
--- a/docs/Documentation/Controllable.html
+++ b/docs/Documentation/Controllable.html
@@ -108,7 +108,7 @@ This is different from the EnRoute tasks, where the targets of the task need to
Find below a list of the assigned task methods:
-
-
- CONTROLLABLE.TaskAttackControllable: (AIR) Attack a Controllable. +
- CONTROLLABLE.TaskAttackGroup: (AIR) Attack a Controllable.
- CONTROLLABLE.TaskAttackMapObject: (AIR) Attacking the map object (building, structure, e.t.c).
- CONTROLLABLE.TaskAttackUnit: (AIR) Attack the Unit.
- CONTROLLABLE.TaskBombing: (AIR) Delivering weapon at the point on the ground. @@ -116,7 +116,7 @@ This is different from the EnRoute tasks, where the targets of the task need to
- CONTROLLABLE.TaskEmbarking: (AIR) Move the controllable to a Vec2 Point, wait for a defined duration and embark a controllable.
- CONTROLLABLE.TaskEmbarkToTransport: (GROUND) Embark to a Transport landed at a location.
- CONTROLLABLE.TaskEscort: (AIR) Escort another airborne controllable. -
- CONTROLLABLE.TaskFAC_AttackControllable: (AIR + GROUND) The task makes the controllable/unit a FAC and orders the FAC to control the target (enemy ground controllable) destruction. +
- CONTROLLABLE.TaskFAC_AttackGroup: (AIR + GROUND) The task makes the controllable/unit a FAC and orders the FAC to control the target (enemy ground controllable) destruction.
- CONTROLLABLE.TaskFireAtPoint: (GROUND) Fire some or all ammunition at a VEC2 point.
- CONTROLLABLE.TaskFollow: (AIR) Following another airborne controllable.
- CONTROLLABLE.TaskHold: (GROUND) Hold ground controllable from moving. @@ -1011,7 +1011,7 @@ All en-route tasks have the priority parameter. This is a number (less value - h
-
+(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackGroup" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks.#boolean AttackQtyLimit: -(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackControllable" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks.
+(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackGroup" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks.#boolean AttackQtyLimit: -(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackControllable" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks. -
+(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackGroup" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks.#boolean AttackQtyLimit: -(optional) The flag determines how to interpret attackQty parameter. If the flag is true then attackQty is a limit on maximal attack quantity for "AttackControllable" and "AttackUnit" tasks. If the flag is false then attackQty is a desired attack quantity for "Bombing" and "BombingRunway" tasks. - @@ -2203,7 +2203,7 @@ The DCS task structure.
-
+(optional) Desired quantity of passes. The parameter is not the same in AttackGroup and AttackUnit tasks.#number AttackQty: -(optional) Desired quantity of passes. The parameter is not the same in AttackControllable and AttackUnit tasks. -
diff --git a/docs/Documentation/Event.html b/docs/Documentation/Event.html
index dbedf44c0..d4bdd4c3d 100644
--- a/docs/Documentation/Event.html
+++ b/docs/Documentation/Event.html
@@ -72,8 +72,7 @@
Module
-EventThis core module models the dispatching of DCS Events to subscribed MOOSE classes, -following a given priority.
+Core - EVENT models DCS event dispatching using a publish-subscribe model.
diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index 0e7e9df7f..76ef8699c 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -72,10 +72,10 @@Module
-FsmThis module contains the FSM (Finite State Machine) class and derived FSM_ classes.
+Core - The FSM (Finite State Machine) class and derived FSM_ classes +are design patterns allowing efficient (long-lasting) processes and workflows.
-Finite State Machines (FSM) are design patterns allowing efficient (long-lasting) processes and workflows.
diff --git a/docs/Documentation/Menu.html b/docs/Documentation/Menu.html index ddf19fdc5..453e33c66 100644 --- a/docs/Documentation/Menu.html +++ b/docs/Documentation/Menu.html @@ -72,7 +72,7 @@Module
-MenuThis module contains the MENU classes.
+Core -- MENU_ classes model the definition of hierarchical menu structures and commands for players within a mission.
diff --git a/docs/Documentation/Message.html b/docs/Documentation/Message.html index 35e799486..2da7809e7 100644 --- a/docs/Documentation/Message.html +++ b/docs/Documentation/Message.html @@ -72,29 +72,49 @@Module
-MessageThis module contains the MESSAGE class.
+Core - MESSAGE class takes are of the real-time notifications and messages to players during a simulation.
+
+ +
+1) Message#MESSAGE class, extends Base#BASE
+Message System to display Messages to Clients, Coalitions or All. Messages are shown on the display panel for an amount of seconds, and will then disappear. Messages can contain a category which is indicating the category of the message.
-1.1) MESSAGE construction methods
+1.1) MESSAGE construction
+Messages are created with Message#MESSAGE.New. Note that when the MESSAGE object is created, no message is sent yet. To send messages, you need to use the To functions.
-1.2) Send messages with MESSAGE To methods
-Messages are sent to:
+1.2) Send messages to an audience
+ +Messages are sent:
-
-
- Clients with Message#MESSAGE.ToClient. -
- Coalitions with Message#MESSAGE.ToCoalition. -
- All Players with Message#MESSAGE.ToAll. - +
- To a Client using Message#MESSAGE.ToClient(). +
- To a Group using Message#MESSAGE.ToGroup() +
- To a coalition using Message#MESSAGE.ToCoalition(). +
- To the red coalition using Message#MESSAGE.ToRed(). +
- To the blue coalition using Message#MESSAGE.ToBlue(). +
- To all Players using Message#MESSAGE.ToAll().
1.3) Send conditionally to an audience
+ +Messages can be sent conditionally to an audience (when a condition is true):
+ +-
+
- To all players using Message#MESSAGE.ToAllIf(). +
- To a coalition using Message#MESSAGE.ToCoalitionIf(). +
Global(s)
diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index fdc60bf54..6dfc437e5 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -72,7 +72,7 @@ Module
-PointThis module contains the POINT classes.
+Core - POINT_VEC classes define an extensive API to manage 3D points in the simulation space.
diff --git a/docs/Documentation/Scoring.html b/docs/Documentation/Scoring.html index 9a481e37f..0ffe32d75 100644 --- a/docs/Documentation/Scoring.html +++ b/docs/Documentation/Scoring.html @@ -550,7 +550,7 @@ Various methods exist to configure:- SCORING:ScoreCSV(PlayerName, ScoreType, ScoreTimes, ScoreAmount, PlayerUnitName, PlayerUnitCoalition, PlayerUnitCategory, PlayerUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType) +SCORING:ScoreCSV(PlayerName, TargetPlayerName, ScoreType, ScoreTimes, ScoreAmount, PlayerUnitName, PlayerUnitCoalition, PlayerUnitCategory, PlayerUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType) @@ -1637,7 +1637,7 @@ The player group.Registers a score for a player.
- -SCORING:ScoreCSV(PlayerName, ScoreType, ScoreTimes, ScoreAmount, PlayerUnitName, PlayerUnitCoalition, PlayerUnitCategory, PlayerUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType) +SCORING:ScoreCSV(PlayerName, TargetPlayerName, ScoreType, ScoreTimes, ScoreAmount, PlayerUnitName, PlayerUnitCoalition, PlayerUnitCategory, PlayerUnitType, TargetUnitName, TargetUnitCoalition, TargetUnitCategory, TargetUnitType)
- @@ -1654,6 +1654,12 @@ The name of the player.
- +
+
+ +#string TargetPlayerName: +The name of the target player.- +
diff --git a/docs/Documentation/Set.html b/docs/Documentation/Set.html index fbe786ae1..8c6884967 100644 --- a/docs/Documentation/Set.html +++ b/docs/Documentation/Set.html @@ -72,7 +72,7 @@#string ScoreType: The type of the score.Module
-SetThis module contains the SET classes.
+Core - SET classes define collections of objects to perform bulk actions and logically group objects.
diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 5b520310c..1fae53205 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -1759,9 +1759,6 @@ The group that was spawned. You can use this group for further actions. - -Don't repeat the group from Take-Off till Landing and back Take-Off by ReSpawning.
--
diff --git a/docs/Documentation/Zone.html b/docs/Documentation/Zone.html
index 110de3739..9c92cf3da 100644
--- a/docs/Documentation/Zone.html
+++ b/docs/Documentation/Zone.html
@@ -72,10 +72,12 @@
Module
-ZoneThis core module contains the ZONE classes, inherited from Zone#ZONE_BASE.
+Core - ZONE classes define zones within your mission of various forms, with various capabilities.
+
+There are essentially two core functions that zones accomodate:
-
diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html
index 6855b3c7d..124efee34 100644
--- a/docs/Documentation/index.html
+++ b/docs/Documentation/index.html
@@ -161,7 +161,7 @@ and automatically engage any airborne enemies that are within a certain range or
Base - This module contains the BASE class.
+Core - BASE forms the basis of the MOOSE framework.
@@ -232,14 +232,14 @@ and automatically engage any airborne enemies that are within a certain range or Event - This core module models the dispatching of DCS Events to subscribed MOOSE classes, -following a given priority.
+Core - EVENT models DCS event dispatching using a publish-subscribe model.
Fsm - This module contains the FSM (Finite State Machine) class and derived FSM_ classes.
+Core - The FSM (Finite State Machine) class and derived FSM_ classes +are design patterns allowing efficient (long-lasting) processes and workflows.
@@ -263,13 +263,13 @@ following a given priority. Menu - This module contains the MENU classes.
+Core -- MENU_ classes model the definition of hierarchical menu structures and commands for players within a mission.
Message - This module contains the MESSAGE class.
+Core - MESSAGE class takes are of the real-time notifications and messages to players during a simulation.
@@ -293,7 +293,7 @@ following a given priority. Point - This module contains the POINT classes.
+Core - POINT_VEC classes define an extensive API to manage 3D points in the simulation space.
@@ -363,7 +363,7 @@ and creates a CSV file logging the scoring events and results for use at team or Set - This module contains the SET classes.
+Core - SET classes define collections of objects to perform bulk actions and logically group objects.
@@ -433,7 +433,7 @@ which are excellent tools to be reused in an OO environment!. Zone - This core module contains the ZONE classes, inherited from Zone#ZONE_BASE.
+Core - ZONE classes define zones within your mission of various forms, with various capabilities.
diff --git a/docs/Presentations/BASE/Dia1.JPG b/docs/Presentations/BASE/Dia1.JPG new file mode 100644 index 000000000..a0fb1fb6b Binary files /dev/null and b/docs/Presentations/BASE/Dia1.JPG differ diff --git a/docs/Presentations/MESSAGE/Dia1.JPG b/docs/Presentations/MESSAGE/Dia1.JPG new file mode 100644 index 000000000..c105fe33d Binary files /dev/null and b/docs/Presentations/MESSAGE/Dia1.JPG differ
1.5) All objects derived from BASE can have "States"
-A mechanism is in place in MOOSE, that allows to let the objects administer states. -States are essentially properties of objects, which are identified by a Key and a Value. -The method BASE.SetState() can be used to set a Value with a reference Key to the object. -To read or retrieve a state Value based on a Key, use the BASE.GetState method. -These two methods provide a very handy way to keep state at long lasting processes. +
A mechanism is in place in MOOSE, that allows to let the objects administer states.
+States are essentially properties of objects, which are identified by a Key and a Value.
The method BASE.SetState() can be used to set a Value with a reference Key to the object.
+To read or retrieve a state Value based on a Key, use the BASE.GetState method.
These two methods provide a very handy way to keep state at long lasting processes. Values can be stored within the objects, and later retrieved or changed when needed. There is one other important thing to note, the BASE.SetState() and BASE.GetState methods receive as the first parameter the object for which the state needs to be set. Thus, if the state is to be set for the same object as the object for which the method is used, then provide the same object name to the method.
-1.10) BASE Inheritance (tree) support
+1.10) Inheritance
-The following methods are available to support inheritance:
+The following methods are available to implement inheritance