diff --git a/Moose Development/Moose/Core/Cargo.lua b/Moose Development/Moose/Core/Cargo.lua index 59b77675c..c00740e68 100644 --- a/Moose Development/Moose/Core/Cargo.lua +++ b/Moose Development/Moose/Core/Cargo.lua @@ -27,6 +27,7 @@ -- @function [parent=#CARGO] Board -- @param #CARGO self -- @param Wrapper.Controllable#CONTROLLABLE ToCarrier The Carrier that will hold the cargo. +-- @param #number NearRadius The radius when the cargo will board the Carrier (to avoid collision). --- Boards the cargo to a Carrier. The event will create a movement (= running or driving) of the cargo to the Carrier. -- The cargo must be in the **UnLoaded** state. @@ -34,6 +35,7 @@ -- @param #CARGO self -- @param #number DelaySeconds The amount of seconds to delay the action. -- @param Wrapper.Controllable#CONTROLLABLE ToCarrier The Carrier that will hold the cargo. +-- @param #number NearRadius The radius when the cargo will board the Carrier (to avoid collision). -- UnBoard @@ -117,6 +119,7 @@ --- @function [parent=#CARGO] OnEnterBoarding -- @param #CARGO self -- @param Wrapper.Controllable#CONTROLLABLE Controllable +-- @param #number NearRadius The radius when the cargo will board the Carrier (to avoid collision). -- UnBoarding @@ -215,10 +218,10 @@ do -- CARGO -- @param #number Weight -- @param #number NearRadius (optional) -- @return #CARGO -function CARGO:New( Type, Name, Weight, NearRadius ) +function CARGO:New( Type, Name, Weight ) local self = BASE:Inherit( self, FSM:New() ) -- Core.Fsm#FSM - self:F( { Type, Name, Weight, NearRadius } ) + self:F( { Type, Name, Weight } ) self:SetStartState( "UnLoaded" ) self:AddTransition( "UnLoaded", "Board", "Boarding" ) @@ -234,7 +237,6 @@ function CARGO:New( Type, Name, Weight, NearRadius ) self.Type = Type self.Name = Name self.Weight = Weight - self.NearRadius = NearRadius or 200 self.CargoObject = nil self.CargoCarrier = nil self.Representable = false @@ -311,14 +313,15 @@ end --- Check if CargoCarrier is near the Cargo to be Loaded. -- @param #CARGO self -- @param Core.Point#POINT_VEC2 PointVec2 +-- @param #number NearRadius The radius when the cargo will board the Carrier (to avoid collision). -- @return #boolean -function CARGO:IsNear( PointVec2 ) +function CARGO:IsNear( PointVec2, NearRadius ) self:F( { PointVec2 } ) local Distance = PointVec2:DistanceFromPointVec2( self.CargoObject:GetPointVec2() ) self:T( Distance ) - if Distance <= self.NearRadius then + if Distance <= NearRadius then return true else return false @@ -407,11 +410,12 @@ do -- CARGO_REPORTABLE -- @param #number ReportRadius (optional) -- @param #number NearRadius (optional) -- @return #CARGO_REPORTABLE -function CARGO_REPORTABLE:New( Type, Name, Weight, ReportRadius, NearRadius ) - local self = BASE:Inherit( self, CARGO:New( Type, Name, Weight, NearRadius ) ) -- #CARGO_REPORTABLE - self:F( { Type, Name, Weight, ReportRadius, NearRadius } ) +function CARGO_REPORTABLE:New( CargoObject, Type, Name, Weight, ReportRadius ) + local self = BASE:Inherit( self, CARGO:New( Type, Name, Weight ) ) -- #CARGO_REPORTABLE + self:F( { Type, Name, Weight, ReportRadius } ) self.ReportRadius = ReportRadius or 1000 + self.CargoObject = CargoObject return self end @@ -483,8 +487,6 @@ function CARGO_UNIT:New( CargoUnit, Type, Name, Weight, NearRadius ) self:T( self.ClassName ) - -- Cargo objects are added to the _DATABASE and SET_CARGO objects. - _EVENTDISPATCHER:CreateEventNewCargo( self ) return self end @@ -638,12 +640,14 @@ end -- @param #string From -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier -function CARGO_UNIT:onenterBoarding( From, Event, To, CargoCarrier, ... ) - self:F( { CargoCarrier.UnitName, From, Event, To } ) +function CARGO_UNIT:onenterBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) + self:F( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) local Speed = 10 local Angle = 180 local Distance = 5 + + NearRadius = NearRadius or 25 if From == "UnLoaded" then local CargoCarrierPointVec2 = CargoCarrier:GetPointVec2() @@ -670,10 +674,12 @@ end -- @param #string From -- @param #string To -- @param Wrapper.Unit#UNIT CargoCarrier -function CARGO_UNIT:onleaveBoarding( From, Event, To, CargoCarrier, ... ) - self:F( { CargoCarrier.UnitName, From, Event, To } ) +function CARGO_UNIT:onleaveBoarding( From, Event, To, CargoCarrier, NearRadius, ... ) + self:F( { From, Event, To, CargoCarrier.UnitName, NearRadius } ) - if self:IsNear( CargoCarrier:GetPointVec2() ) then + NearRadius = NearRadius or 25 + + if self:IsNear( CargoCarrier:GetPointVec2(), NearRadius ) then self:__Load( 1, CargoCarrier, ... ) return true else @@ -706,9 +712,11 @@ end -- @param #string Event -- @param #string From -- @param #string To -function CARGO_UNIT:onafterBoard( From, Event, To, CargoCarrier, ... ) +function CARGO_UNIT:onafterBoard( From, Event, To, CargoCarrier, NearRadius, ... ) self:F() + NearRadius = NearRadius or 25 + self.CargoInAir = self.CargoObject:InAir() self:T( self.CargoInAir ) @@ -963,7 +971,7 @@ do -- CARGO_GROUP -- @param #number NearRadius (optional) -- @return #CARGO_GROUP function CARGO_GROUP:New( CargoGroup, Type, Name, ReportRadius, NearRadius ) - local self = BASE:Inherit( self, CARGO_REPORTABLE:New( Type, Name, 0, ReportRadius, NearRadius ) ) -- #CARGO_GROUP + local self = BASE:Inherit( self, CARGO_REPORTABLE:New( CargoGroup, Type, Name, 0, ReportRadius, NearRadius ) ) -- #CARGO_GROUP self:F( { Type, Name, ReportRadius, NearRadius } ) self.CargoSet = SET_CARGO:New() @@ -981,6 +989,9 @@ function CARGO_GROUP:New( CargoGroup, Type, Name, ReportRadius, NearRadius ) self:SetWeight( WeightGroup ) self:T( { "Weight Cargo", WeightGroup } ) + + -- Cargo objects are added to the _DATABASE and SET_CARGO objects. + _EVENTDISPATCHER:CreateEventNewCargo( self ) return self end diff --git a/Moose Development/Moose/Moose.lua b/Moose Development/Moose/Moose.lua index 5195ff310..cca24bef8 100644 --- a/Moose Development/Moose/Moose.lua +++ b/Moose Development/Moose/Moose.lua @@ -1,70 +1,3 @@ ---- The main include file for the MOOSE system. --- Test of permissions - ---- Core Routines -Include.File( "Utilities/Routines" ) -Include.File( "Utilities/Utils" ) - ---- Core Classes -Include.File( "Core/Base" ) -Include.File( "Core/Scheduler" ) -Include.File( "Core/ScheduleDispatcher") -Include.File( "Core/Event" ) -Include.File( "Core/Menu" ) -Include.File( "Core/Zone" ) -Include.File( "Core/Database" ) -Include.File( "Core/Set" ) -Include.File( "Core/Point" ) -Include.File( "Core/Message" ) -Include.File( "Core/Fsm" ) -Include.File( "Core/Radio" ) - ---- Wrapper Classes -Include.File( "Wrapper/Object" ) -Include.File( "Wrapper/Identifiable" ) -Include.File( "Wrapper/Positionable" ) -Include.File( "Wrapper/Controllable" ) -Include.File( "Wrapper/Group" ) -Include.File( "Wrapper/Unit" ) -Include.File( "Wrapper/Client" ) -Include.File( "Wrapper/Static" ) -Include.File( "Wrapper/Airbase" ) -Include.File( "Wrapper/Scenery" ) - ---- Functional Classes -Include.File( "Functional/Scoring" ) -Include.File( "Functional/CleanUp" ) -Include.File( "Functional/Spawn" ) -Include.File( "Functional/Movement" ) -Include.File( "Functional/Sead" ) -Include.File( "Functional/Escort" ) -Include.File( "Functional/MissileTrainer" ) -Include.File( "Functional/AirbasePolice" ) -Include.File( "Functional/Detection" ) - ---- AI Classes -Include.File( "AI/AI_Balancer" ) -Include.File( "AI/AI_Patrol" ) -Include.File( "AI/AI_Cap" ) -Include.File( "AI/AI_Cas" ) -Include.File( "AI/AI_Cargo" ) - ---- Actions -Include.File( "Actions/Act_Assign" ) -Include.File( "Actions/Act_Route" ) -Include.File( "Actions/Act_Account" ) -Include.File( "Actions/Act_Assist" ) - ---- Task Handling Classes -Include.File( "Tasking/CommandCenter" ) -Include.File( "Tasking/Mission" ) -Include.File( "Tasking/Task" ) -Include.File( "Tasking/DetectionManager" ) -Include.File( "Tasking/Task_A2G_Dispatcher") -Include.File( "Tasking/Task_A2G" ) -Include.File( "Tasking/Task_CARGO" ) - - -- The order of the declarations is important here. Don't touch it. --- Declare the event dispatcher based on the EVENT class @@ -74,7 +7,7 @@ _EVENTDISPATCHER = EVENT:New() -- Core.Event#EVENT _SCHEDULEDISPATCHER = SCHEDULEDISPATCHER:New() -- Core.Timer#SCHEDULEDISPATCHER --- Declare the main database object, which is used internally by the MOOSE classes. -_DATABASE = DATABASE:New() -- Core.Database#DATABASE +_DATABASE = DATABASE:New() -- Database#DATABASE diff --git a/Moose Development/Moose/Tasking/Task_CARGO.lua b/Moose Development/Moose/Tasking/Task_CARGO.lua index 44d3523d9..f6361a777 100644 --- a/Moose Development/Moose/Tasking/Task_CARGO.lua +++ b/Moose Development/Moose/Tasking/Task_CARGO.lua @@ -130,7 +130,7 @@ do -- TASK_CARGO Task.SetCargo:ForEachCargo( - --- @param AI.AI_Cargo#AI_CARGO Cargo + --- @param Core.Cargo#CARGO Cargo function( Cargo ) if Cargo:IsUnLoaded() then if Cargo:IsInRadius( TaskUnit:GetPointVec2() ) then diff --git a/Moose Mission Setup/Moose.files b/Moose Mission Setup/Moose.files index e477fca81..57f9bca5a 100644 --- a/Moose Mission Setup/Moose.files +++ b/Moose Mission Setup/Moose.files @@ -53,5 +53,6 @@ Tasking/Task.lua Tasking/DetectionManager.lua Tasking/Task_A2G_Dispatcher.lua Tasking/Task_A2G.lua +Tasking/Task_Cargo.lua Moose.lua diff --git a/Moose Mission Setup/Moose.lua b/Moose Mission Setup/Moose.lua index e922bc157..688d42a41 100644 --- a/Moose Mission Setup/Moose.lua +++ b/Moose Mission Setup/Moose.lua @@ -1,5 +1,5 @@ env.info( '*** MOOSE DYNAMIC INCLUDE START *** ' ) -env.info( 'Moose Generation Timestamp: 20170413_0842' ) +env.info( 'Moose Generation Timestamp: 20170413_0920' ) local base = _G @@ -70,6 +70,7 @@ __Moose.Include( 'Tasking/Task.lua' ) __Moose.Include( 'Tasking/DetectionManager.lua' ) __Moose.Include( 'Tasking/Task_A2G_Dispatcher.lua' ) __Moose.Include( 'Tasking/Task_A2G.lua' ) +__Moose.Include( 'Tasking/Task_Cargo.lua' ) __Moose.Include( 'Moose.lua' ) BASE:TraceOnOff( true ) env.info( '*** MOOSE INCLUDE END *** ' ) diff --git a/docs/Documentation/Cargo.html b/docs/Documentation/Cargo.html index 07f90f7bb..8feac7d7c 100644 --- a/docs/Documentation/Cargo.html +++ b/docs/Documentation/Cargo.html @@ -93,568 +93,565 @@

Module Cargo

-

Single-Player:Yes / Multi-Player:Yes / AI:Yes / Human:No / Types:Ground --
-Management of logical cargo objects, that can be transported from and to transportation carriers.

+

Core -- Management of CARGO logistics, that can be transported from and to transportation carriers.

-

Banner Image

+ + +

Banner Image


Cargo can be of various forms, always are composed out of ONE object ( one unit or one static or one slingload crate ):

- -

Destruction of the Unit will mean that the cargo is lost. - * CARGO_STATIC, represented by a Static: Cargo can be represented by a Static. Destruction of the Static will mean that the cargo is lost. - * AICARGOPACKAGE, contained in a Unit of a Group: Cargo can be contained within a Unit of a Group. The cargo can be delivered by the Unit. If the Unit is destroyed, the cargo will be destroyed also. - * AICARGOPACKAGE, Contained in a Static: Cargo can be contained within a Static. The cargo can be collected from the @Static. If the Static is destroyed, the cargo will be destroyed. - * CARGO_SLINGLOAD, represented by a Cargo that is transportable: Cargo can be represented by a Cargo object that is transportable. Destruction of the Cargo will mean that the cargo is lost.

- - - - -

This module is still under construction, but is described above works already, and will keep working ...

Global(s)

- + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
AI_CARGOCARGO -

AI_CARGO class, extends Fsm#FSM_PROCESS

+

CARGO class, extends Fsm#FSM_PROCESS

-

The AI_CARGO class defines the core functions that defines a cargo object within MOOSE.

-
AI_CARGO_GROUP -

AI_CARGO_GROUP class

- -

The AI_CARGO_GROUP class defines a cargo that is represented by a group of Unit objects within the simulator, and can be transported by a carrier.

-
AI_CARGO_GROUPED -

AI_CARGO_GROUPED class

- -

The AI_CARGO_GROUPED class defines a cargo that is represented by a group of UNIT objects within the simulator, and can be transported by a carrier.

-
AI_CARGO_PACKAGE - -
AI_CARGO_REPRESENTABLE - -
AI_CARGO_UNIT -

AI_CARGO_UNIT class, extends #AICARGOREPRESENTABLE

- -

The AI_CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

+

The CARGO class defines the core functions that defines a cargo object within MOOSE.

CARGOS +
CARGO_GROUP +

CARGO_GROUP class

+ +

The CARGO_GROUP class defines a cargo that is represented by a Group object within the simulator, and can be transported by a carrier.

+
CARGO_PACKAGE + +
CARGO_REPORTABLE + +
CARGO_REPRESENTABLE + +
CARGO_UNIT +

CARGO_UNIT class, extends #CARGO_REPRESENTABLE

+ +

The CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

-

Type AI_CARGO

+

Type CARGO

- + - + - + - + - + - + - + - + - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + - + + + + + - + - + - + - + - + - + - + - + - +
AI_CARGO:Board(ToCarrier)CARGO:Board(ToCarrier, NearRadius)

Boards the cargo to a Carrier.

AI_CARGO.CargoCarrierCARGO.CargoCarrier

The alive DCS object carrying the cargo. This value can be nil, meaning, that the cargo is not contained anywhere...

AI_CARGO.CargoObjectCARGO.CargoObject

The alive DCS object representing the cargo. This value can be nil, meaning, that the cargo is not represented anywhere...

AI_CARGO.ContainableCARGO.Containable

This flag defines if the cargo can be contained within a DCS Unit.

AI_CARGO:GetBoardingRange()CARGO:GetBoardingRange()

Get the range till cargo will board.

AI_CARGO:GetName()CARGO:GetName()

Get the name of the Cargo.

AI_CARGO:GetPointVec2()CARGO:GetPointVec2()

Get the current PointVec2 of the cargo.

AI_CARGO:GetType()CARGO:GetType()

Get the type of the Cargo.

AI_CARGO:IsInRadius(PointVec2) -

Check if CargoCarrier is in the radius for the Cargo to be Loaded.

-
AI_CARGO:IsInZone(Zone)CARGO:IsInZone(Zone)

Check if Cargo is the given Zone.

AI_CARGO:IsLoaded()CARGO:IsLoaded()

Check if cargo is loaded.

AI_CARGO:IsNear(PointVec2)CARGO:IsNear(PointVec2, NearRadius)

Check if CargoCarrier is near the Cargo to be Loaded.

AI_CARGO:IsUnLoaded()CARGO:IsUnLoaded()

Check if cargo is unloaded.

AI_CARGO:Load(ToCarrier)CARGO:Load(ToCarrier)

Loads the cargo to a Carrier.

AI_CARGO.MoveableCARGO.Moveable

This flag defines if the cargo is moveable.

AI_CARGO.NameCARGO.Name

A string defining the name of the cargo. The name is the unique identifier of the cargo.

AI_CARGO.NearRadiusCARGO.NearRadius

(optional) A number defining the radius in meters when the cargo is near to a Carrier, so that it can be loaded.

AI_CARGO:New(Type, Name, Weight, ReportRadius, NearRadius)CARGO:New(Type, Name, Weight, NearRadius) -

AI_CARGO Constructor.

+

CARGO Constructor.

AI_CARGO:OnEnterBoarding(Controllable)CARGO:OnEnterBoarding(Controllable, NearRadius)
AI_CARGO:OnEnterLoaded(Controllable)CARGO:OnEnterLoaded(Controllable)
AI_CARGO:OnEnterUnBoarding(Controllable)CARGO:OnEnterUnBoarding(Controllable)
AI_CARGO:OnEnterUnLoaded(Controllable)CARGO:OnEnterUnLoaded(Controllable)
AI_CARGO:OnLeaveBoarding(Controllable)CARGO:OnLeaveBoarding(Controllable)
AI_CARGO:OnLeaveLoaded(Controllable)CARGO:OnLeaveLoaded(Controllable)
AI_CARGO:OnLeaveUnBoarding(Controllable)CARGO:OnLeaveUnBoarding(Controllable)
AI_CARGO:OnLeaveUnLoaded(Controllable)CARGO:OnLeaveUnLoaded(Controllable)
AI_CARGO.ReportRadius -

(optional) A number defining the radius in meters when the cargo is signalling or reporting to a Carrier.

-
AI_CARGO.RepresentableCARGO.Representable

This flag defines if the cargo can be represented by a DCS Unit.

AI_CARGO.SlingloadableCARGO:SetWeight(Weight) +

Set the weight of the cargo.

+
CARGO.Slingloadable

This flag defines if the cargo can be slingloaded.

AI_CARGO:Spawn(PointVec2)CARGO:Spawn(PointVec2) -

Template method to spawn a new representation of the AI_CARGO in the simulator.

+

Template method to spawn a new representation of the CARGO in the simulator.

AI_CARGO.TypeCARGO.Type

A string defining the type of the cargo. eg. Engineers, Equipment, Screwdrivers.

AI_CARGO:UnBoard(ToPointVec2)CARGO:UnBoard(ToPointVec2)

UnBoards the cargo to a Carrier.

AI_CARGO:UnLoad(ToPointVec2)CARGO:UnLoad(ToPointVec2)

UnLoads the cargo to a Carrier.

AI_CARGO.WeightCARGO.Weight

A number defining the weight of the cargo. The weight is expressed in kg.

AI_CARGO:__Board(DelaySeconds, ToCarrier)CARGO:__Board(DelaySeconds, ToCarrier, NearRadius)

Boards the cargo to a Carrier.

AI_CARGO:__Load(DelaySeconds, ToCarrier)CARGO:__Load(DelaySeconds, ToCarrier)

Loads the cargo to a Carrier.

AI_CARGO:__UnBoard(DelaySeconds, ToPointVec2)CARGO:__UnBoard(DelaySeconds, ToPointVec2)

UnBoards the cargo to a Carrier.

AI_CARGO:__UnLoad(DelaySeconds, ToPointVec2)CARGO:__UnLoad(DelaySeconds, ToPointVec2)

UnLoads the cargo to a Carrier.

-

Type AI_CARGO_GROUP

+

Type CARGO_GROUP

- + - - - - - - - - - -
AI_CARGO_GROUP.CargoSetCARGO_GROUP.CargoSet -

A set of cargo objects.

-
AI_CARGO_GROUP.Name -

A string defining the name of the cargo group. The name is the unique identifier of the cargo.

-
AI_CARGO_GROUP:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius) -

AICARGOGROUP constructor.

-
-

Type AI_CARGO_GROUPED

- - - - - + + + + + - + - + - + - + - + - +
AI_CARGO_GROUPED:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius) -

AICARGOGROUPED constructor.

AI_CARGO_GROUPED:onafterUnBoarding(ToPointVec2, Event, From, To)CARGO_GROUP:New(CargoGroup, Type, Name, ReportRadius, NearRadius) +

CARGO_GROUP constructor.

+
CARGO_GROUP:onafterUnBoarding(ToPointVec2, Event, From, To)

UnBoard Event.

AI_CARGO_GROUPED:onenterBoarding(CargoCarrier, Event, From, To)CARGO_GROUP:onenterBoarding(CargoCarrier, Event, From, To)

Enter Boarding State.

AI_CARGO_GROUPED:onenterLoaded(CargoCarrier, Event, From, To)CARGO_GROUP:onenterLoaded(CargoCarrier, Event, From, To)

Enter Loaded State.

AI_CARGO_GROUPED:onenterUnBoarding(ToPointVec2, Event, From, To)CARGO_GROUP:onenterUnBoarding(ToPointVec2, Event, From, To)

Enter UnBoarding State.

AI_CARGO_GROUPED:onenterUnLoaded(Core, Event, From, To, ToPointVec2)CARGO_GROUP:onenterUnLoaded(Core, Event, From, To, ToPointVec2)

Enter UnLoaded State.

AI_CARGO_GROUPED:onleaveBoarding(CargoCarrier, Event, From, To)CARGO_GROUP:onleaveBoarding(CargoCarrier, Event, From, To)

Leave Boarding State.

AI_CARGO_GROUPED:onleaveUnBoarding(ToPointVec2, Event, From, To)CARGO_GROUP:onleaveUnBoarding(ToPointVec2, Event, From, To)

Leave UnBoarding State.

-

Type AI_CARGO_PACKAGE

+

Type CARGO_PACKAGE

- + - + - + - + - + - + - + - + - + - + - +
AI_CARGO_PACKAGE.CargoCarrierCARGO_PACKAGE.CargoCarrier
AI_CARGO_PACKAGE.CargoInAirCARGO_PACKAGE.CargoInAir
AI_CARGO_PACKAGE.ClassNameCARGO_PACKAGE.ClassName
AI_CARGO_PACKAGE:IsNear(CargoCarrier)CARGO_PACKAGE:IsNear(CargoCarrier)

Check if CargoCarrier is near the Cargo to be Loaded.

AI_CARGO_PACKAGE:New(CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius)CARGO_PACKAGE:New(CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius) -

AICARGOPACKAGE Constructor.

+

CARGO_PACKAGE Constructor.

AI_CARGO_PACKAGE:onafterLoad(Event, From, To, CargoCarrier, Speed, LoadDistance, Angle)CARGO_PACKAGE:onafterLoad(Event, From, To, CargoCarrier, Speed, LoadDistance, Angle)

Load Event.

AI_CARGO_PACKAGE:onafterOnBoard(Event, From, To, CargoCarrier, Speed, BoardDistance, Angle, LoadDistance)CARGO_PACKAGE:onafterOnBoard(Event, From, To, CargoCarrier, Speed, BoardDistance, Angle, LoadDistance)

Board Event.

AI_CARGO_PACKAGE:onafterOnBoarded(Event, From, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle)CARGO_PACKAGE:onafterOnBoarded(Event, From, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle)

Boarded Event.

AI_CARGO_PACKAGE:onafterUnBoard(Event, From, To, Speed, UnLoadDistance, UnBoardDistance, Radius, Angle, CargoCarrier)CARGO_PACKAGE:onafterUnBoard(Event, From, To, Speed, UnLoadDistance, UnBoardDistance, Radius, Angle, CargoCarrier)

UnBoard Event.

AI_CARGO_PACKAGE:onafterUnBoarded(Event, From, To, CargoCarrier, Speed)CARGO_PACKAGE:onafterUnBoarded(Event, From, To, CargoCarrier, Speed)

UnBoarded Event.

AI_CARGO_PACKAGE:onafterUnLoad(Event, From, To, Distance, Angle, CargoCarrier, Speed)CARGO_PACKAGE:onafterUnLoad(Event, From, To, Distance, Angle, CargoCarrier, Speed)

UnLoad Event.

-

Type AI_CARGO_REPRESENTABLE

+

Type CARGO_REPORTABLE

- + - + - + + + + + + + +
AI_CARGO_REPRESENTABLE.ClassNameCARGO_REPORTABLE.ClassName
AI_CARGO_REPRESENTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius)CARGO_REPORTABLE:IsInRadius(PointVec2) -

AICARGOREPRESENTABLE Constructor.

+

Check if CargoCarrier is in the ReportRadius for the Cargo to be Loaded.

AI_CARGO_REPRESENTABLE:RouteTo(ToPointVec2, Speed)CARGO_REPORTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius) +

CARGO_REPORTABLE Constructor.

+
CARGO_REPORTABLE.ReportRadius + +
+ +

Type CARGO_REPRESENTABLE

+ + + + + + + + + + +
CARGO_REPRESENTABLE.ClassName + +
CARGO_REPRESENTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius) +

CARGO_REPRESENTABLE Constructor.

+
CARGO_REPRESENTABLE:RouteTo(ToPointVec2, Speed)

Route a cargo unit to a PointVec2.

-

Type AI_CARGO_UNIT

+

Type CARGO_UNIT

- + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -665,34 +662,34 @@
- #AI_CARGO - -AI_CARGO + #CARGO + +CARGO
-

AI_CARGO class, extends Fsm#FSM_PROCESS

+

CARGO class, extends Fsm#FSM_PROCESS

-

The AI_CARGO class defines the core functions that defines a cargo object within MOOSE.

+

The CARGO class defines the core functions that defines a cargo object within MOOSE.

A cargo is a logical object defined that is available for transport, and has a life status within a simulation.

-

The AI_CARGO is a state machine: it manages the different events and states of the cargo. -All derived classes from AI_CARGO follow the same state machine, expose the same cargo event functions, and provide the same cargo states.

+

The CARGO is a state machine: it manages the different events and states of the cargo. +All derived classes from CARGO follow the same state machine, expose the same cargo event functions, and provide the same cargo states.

-

AI_CARGO Events:

+

CARGO Events:

    -
  • #AI( ToCarrier ): Boards the cargo to a carrier.
  • -
  • #AI( ToCarrier ): Loads the cargo into a carrier, regardless of its position.
  • -
  • #AI( ToPointVec2 ): UnBoard the cargo from a carrier. This will trigger a movement of the cargo to the option ToPointVec2.
  • -
  • #AI( ToPointVec2 ): UnLoads the cargo from a carrier.
  • -
  • #AI( Controllable ): The cargo is dead. The cargo process will be ended.
  • +
  • CARGO.Board( ToCarrier ): Boards the cargo to a carrier.
  • +
  • CARGO.Load( ToCarrier ): Loads the cargo into a carrier, regardless of its position.
  • +
  • CARGO.UnBoard( ToPointVec2 ): UnBoard the cargo from a carrier. This will trigger a movement of the cargo to the option ToPointVec2.
  • +
  • CARGO.UnLoad( ToPointVec2 ): UnLoads the cargo from a carrier.
  • +
  • CARGO.Dead( Controllable ): The cargo is dead. The cargo process will be ended.
-

AI_CARGO States:

+

CARGO States:

  • UnLoaded: The cargo is unloaded from a carrier.
  • @@ -703,7 +700,7 @@ All derived classes from AI_CARGO follow the same state machine, expose the same
  • End: The process has come to an end.
-

AI_CARGO state transition methods:

+

CARGO state transition methods:

State transition functions can be set by the mission designer customizing or improving the behaviour of the state. There are 2 moments when state transition methods will be called by the state machine:

@@ -720,96 +717,6 @@ There are 2 moments when state transition methods will be called by the state ma -
-
-
-
- - #AI_CARGO_GROUP - -AI_CARGO_GROUP - -
-
- -

AI_CARGO_GROUP class

- -

The AI_CARGO_GROUP class defines a cargo that is represented by a group of Unit objects within the simulator, and can be transported by a carrier.

- - -

Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_GROUP to and from carrier.

- - -
-
-
-
- - #AI_CARGO_GROUPED - -AI_CARGO_GROUPED - -
-
- -

AI_CARGO_GROUPED class

- -

The AI_CARGO_GROUPED class defines a cargo that is represented by a group of UNIT objects within the simulator, and can be transported by a carrier.

- - -

Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_UNIT objects to and from carriers.

- - -
-
-
-
- - #AI_CARGO_PACKAGE - -AI_CARGO_PACKAGE - -
-
- - - -
-
-
-
- - #AI_CARGO_REPRESENTABLE - -AI_CARGO_REPRESENTABLE - -
-
- - - -
-
-
-
- - #AI_CARGO_UNIT - -AI_CARGO_UNIT - -
-
- -

AI_CARGO_UNIT class, extends #AICARGOREPRESENTABLE

- -

The AI_CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

- - -

Use the event functions as described above to Load, UnLoad, Board, UnBoard the AI_CARGO_UNIT objects to and from carriers.

- -
- -
@@ -824,17 +731,101 @@ There are 2 moments when state transition methods will be called by the state ma + +
+
+
+ + #CARGO_GROUP + +CARGO_GROUP + +
+
+ +

CARGO_GROUP class

+ +

The CARGO_GROUP class defines a cargo that is represented by a Group object within the simulator, and can be transported by a carrier.

+ + +

Use the event functions as described above to Load, UnLoad, Board, UnBoard the CARGO_GROUP to and from carrier.

+ + +
+
+
+
+ + #CARGO_PACKAGE + +CARGO_PACKAGE + +
+
+ + + +
+
+
+
+ + #CARGO_REPORTABLE + +CARGO_REPORTABLE + +
+
+ + + +
+
+
+
+ + #CARGO_REPRESENTABLE + +CARGO_REPRESENTABLE + +
+
+ + + +
+
+
+
+ + #CARGO_UNIT + +CARGO_UNIT + +
+
+ +

CARGO_UNIT class, extends #CARGO_REPRESENTABLE

+ +

The CARGO_UNIT class defines a cargo that is represented by a UNIT object within the simulator, and can be transported by a carrier.

+ + +

Use the event functions as described above to Load, UnLoad, Board, UnBoard the CARGO_UNIT objects to and from carriers.

+ +
+ +

Type Cargo

-

Type AI_CARGO

+

Type CARGO

Field(s)

- -AI_CARGO:Board(ToCarrier) + +CARGO:Board(ToCarrier, NearRadius)
@@ -845,13 +836,19 @@ There are 2 moments when state transition methods will be called by the state ma

The event will create a movement (= running or driving) of the cargo to the Carrier. The cargo must be in the UnLoaded state.

-

Parameter

+

Parameters

  • Wrapper.Controllable#CONTROLLABLE ToCarrier : The Carrier that will hold the cargo.

    +
  • +
  • + +

    #number NearRadius : +The radius when the cargo will board the Carrier (to avoid collision).

    +
@@ -860,8 +857,8 @@ The Carrier that will hold the cargo.

Wrapper.Controllable#CONTROLLABLE - -AI_CARGO.CargoCarrier + +CARGO.CargoCarrier
@@ -874,8 +871,8 @@ The Carrier that will hold the cargo.

Wrapper.Controllable#CONTROLLABLE - -AI_CARGO.CargoObject + +CARGO.CargoObject
@@ -888,8 +885,8 @@ The Carrier that will hold the cargo.

#boolean - -AI_CARGO.Containable + +CARGO.Containable
@@ -901,8 +898,8 @@ The Carrier that will hold the cargo.

- -AI_CARGO:GetBoardingRange() + +CARGO:GetBoardingRange()
@@ -919,8 +916,8 @@ The range till cargo will board.

- -AI_CARGO:GetName() + +CARGO:GetName()
@@ -937,8 +934,8 @@ The name of the Cargo.

- -AI_CARGO:GetPointVec2() + +CARGO:GetPointVec2()
@@ -955,8 +952,8 @@ The name of the Cargo.

- -AI_CARGO:GetType() + +CARGO:GetType()
@@ -973,34 +970,8 @@ The type of the Cargo.

- -AI_CARGO:IsInRadius(PointVec2) - -
-
- -

Check if CargoCarrier is in the radius for the Cargo to be Loaded.

- -

Parameter

- -

Return value

- -

#boolean:

- - -
-
-
-
- - -AI_CARGO:IsInZone(Zone) + +CARGO:IsInZone(Zone)
@@ -1025,8 +996,8 @@ The type of the Cargo.

- -AI_CARGO:IsLoaded() + +CARGO:IsLoaded()
@@ -1043,20 +1014,26 @@ true if loaded

- -AI_CARGO:IsNear(PointVec2) + +CARGO:IsNear(PointVec2, NearRadius)

Check if CargoCarrier is near the Cargo to be Loaded.

-

Parameter

+

Parameters

  • Core.Point#POINT_VEC2 PointVec2 :

    +
  • +
  • + +

    #number NearRadius : +The radius when the cargo will board the Carrier (to avoid collision).

    +

Return value

@@ -1069,8 +1046,8 @@ true if loaded

- -AI_CARGO:IsUnLoaded() + +CARGO:IsUnLoaded()
@@ -1087,8 +1064,8 @@ true if unloaded

- -AI_CARGO:Load(ToCarrier) + +CARGO:Load(ToCarrier)
@@ -1114,8 +1091,8 @@ The Carrier that will hold the cargo.

#boolean - -AI_CARGO.Moveable + +CARGO.Moveable
@@ -1128,8 +1105,8 @@ The Carrier that will hold the cargo.

#string - -AI_CARGO.Name + +CARGO.Name
@@ -1142,8 +1119,8 @@ The Carrier that will hold the cargo.

#number - -AI_CARGO.NearRadius + +CARGO.NearRadius
@@ -1155,13 +1132,13 @@ The Carrier that will hold the cargo.

- -AI_CARGO:New(Type, Name, Weight, ReportRadius, NearRadius) + +CARGO:New(Type, Name, Weight, NearRadius)
-

AI_CARGO Constructor.

+

CARGO Constructor.

This class is an abstract class and should not be instantiated.

@@ -1185,12 +1162,6 @@ The Carrier that will hold the cargo.

  • -

    #number ReportRadius : -(optional)

    - -
  • -
  • -

    #number NearRadius : (optional)

    @@ -1198,7 +1169,7 @@ The Carrier that will hold the cargo.

    Return value

    -

    #AI_CARGO:

    +

    #CARGO:

  • @@ -1206,8 +1177,35 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnEnterBoarding(Controllable) + +CARGO:OnEnterBoarding(Controllable, NearRadius) + +
    +
    + + + +

    Parameters

    + +
    +
    +
    +
    + + +CARGO:OnEnterLoaded(Controllable)
    @@ -1227,8 +1225,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnEnterLoaded(Controllable) + +CARGO:OnEnterUnBoarding(Controllable)
    @@ -1248,8 +1246,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnEnterUnBoarding(Controllable) + +CARGO:OnEnterUnLoaded(Controllable)
    @@ -1269,29 +1267,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnEnterUnLoaded(Controllable) - -
    -
    - - - -

    Parameter

    - -
    -
    -
    -
    - - -AI_CARGO:OnLeaveBoarding(Controllable) + +CARGO:OnLeaveBoarding(Controllable)
    @@ -1316,8 +1293,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnLeaveLoaded(Controllable) + +CARGO:OnLeaveLoaded(Controllable)
    @@ -1342,8 +1319,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnLeaveUnBoarding(Controllable) + +CARGO:OnLeaveUnBoarding(Controllable)
    @@ -1368,8 +1345,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:OnLeaveUnLoaded(Controllable) + +CARGO:OnLeaveUnLoaded(Controllable)
    @@ -1389,42 +1366,55 @@ The Carrier that will hold the cargo.

    #boolean:

    -
    -
    -
    -
    - - #number - -AI_CARGO.ReportRadius - -
    -
    - -

    (optional) A number defining the radius in meters when the cargo is signalling or reporting to a Carrier.

    -
    #boolean - -AI_CARGO.Representable + +CARGO.Representable

    This flag defines if the cargo can be represented by a DCS Unit.

    +
    +
    +
    +
    + + +CARGO:SetWeight(Weight) + +
    +
    + +

    Set the weight of the cargo.

    + +

    Parameter

    +
      +
    • + +

      #number Weight : +The weight in kg.

      + +
    • +
    +

    Return value

    + +

    #CARGO:

    + +
    #boolean - -AI_CARGO.Slingloadable + +CARGO.Slingloadable
    @@ -1436,13 +1426,13 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:Spawn(PointVec2) + +CARGO:Spawn(PointVec2)
    -

    Template method to spawn a new representation of the AI_CARGO in the simulator.

    +

    Template method to spawn a new representation of the CARGO in the simulator.

    Parameter

      @@ -1454,7 +1444,7 @@ The Carrier that will hold the cargo.

    Return value

    -

    #AI_CARGO:

    +

    #CARGO:

    @@ -1463,8 +1453,8 @@ The Carrier that will hold the cargo.

    #string - -AI_CARGO.Type + +CARGO.Type
    @@ -1476,8 +1466,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:UnBoard(ToPointVec2) + +CARGO:UnBoard(ToPointVec2)
    @@ -1502,8 +1492,8 @@ The cargo must be in the Loaded state.

    - -AI_CARGO:UnLoad(ToPointVec2) + +CARGO:UnLoad(ToPointVec2)
    @@ -1529,8 +1519,8 @@ The cargo must be in the Loaded state.

    #number - -AI_CARGO.Weight + +CARGO.Weight
    @@ -1542,8 +1532,8 @@ The cargo must be in the Loaded state.

    - -AI_CARGO:__Board(DelaySeconds, ToCarrier) + +CARGO:__Board(DelaySeconds, ToCarrier, NearRadius)
    @@ -1567,6 +1557,12 @@ The amount of seconds to delay the action.

    Wrapper.Controllable#CONTROLLABLE ToCarrier : The Carrier that will hold the cargo.

    + +
  • + +

    #number NearRadius : +The radius when the cargo will board the Carrier (to avoid collision).

    +
  • @@ -1574,8 +1570,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:__Load(DelaySeconds, ToCarrier) + +CARGO:__Load(DelaySeconds, ToCarrier)
    @@ -1606,8 +1602,8 @@ The Carrier that will hold the cargo.

    - -AI_CARGO:__UnBoard(DelaySeconds, ToPointVec2) + +CARGO:__UnBoard(DelaySeconds, ToPointVec2)
    @@ -1638,8 +1634,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO:__UnLoad(DelaySeconds, ToPointVec2) + +CARGO:__UnLoad(DelaySeconds, ToPointVec2)
    @@ -1668,54 +1664,40 @@ The amount of seconds to delay the action.

    -

    Type AI_CARGO.CargoObjects

    +

    Type CARGO.CargoObjects

    -

    Type AI_CARGO_GROUP

    +

    Type CARGO_GROUP

    Field(s)

    - Set#SET_BASE - -AI_CARGO_GROUP.CargoSet + + +CARGO_GROUP.CargoSet
    -

    A set of cargo objects.

    +
    - #string - -AI_CARGO_GROUP.Name + +CARGO_GROUP:New(CargoGroup, Type, Name, ReportRadius, NearRadius)
    -

    A string defining the name of the cargo group. The name is the unique identifier of the cargo.

    - -
    -
    -
    -
    - - -AI_CARGO_GROUP:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius) - -
    -
    - -

    AICARGOGROUP constructor.

    +

    CARGO_GROUP constructor.

    Parameters

    • -

      Core.Set#Set_BASE CargoSet :

      +

      Wrapper.Group#GROUP CargoGroup :

    • @@ -1730,11 +1712,6 @@ The amount of seconds to delay the action.

    • -

      #number Weight :

      - -
    • -
    • -

      #number ReportRadius : (optional)

      @@ -1748,63 +1725,7 @@ The amount of seconds to delay the action.

    Return value

    -

    #AICARGOGROUP:

    - - -
    -
    - -

    Type AI_CARGO_GROUPED

    -

    Field(s)

    -
    -
    - - -AI_CARGO_GROUPED:New(CargoSet, Type, Name, Weight, ReportRadius, NearRadius) - -
    -
    - -

    AICARGOGROUPED constructor.

    - -

    Parameters

    -
      -
    • - -

      Core.Set#Set_BASE CargoSet :

      - -
    • -
    • - -

      #string Type :

      - -
    • -
    • - -

      #string Name :

      - -
    • -
    • - -

      #number Weight :

      - -
    • -
    • - -

      #number ReportRadius : -(optional)

      - -
    • -
    • - -

      #number NearRadius : -(optional)

      - -
    • -
    -

    Return value

    - -

    #AICARGOGROUPED:

    +

    #CARGO_GROUP:

    @@ -1812,8 +1733,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO_GROUPED:onafterUnBoarding(ToPointVec2, Event, From, To) + +CARGO_GROUP:onafterUnBoarding(ToPointVec2, Event, From, To)
    @@ -1848,8 +1769,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO_GROUPED:onenterBoarding(CargoCarrier, Event, From, To) + +CARGO_GROUP:onenterBoarding(CargoCarrier, Event, From, To)
    @@ -1884,8 +1805,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO_GROUPED:onenterLoaded(CargoCarrier, Event, From, To) + +CARGO_GROUP:onenterLoaded(CargoCarrier, Event, From, To)
    @@ -1920,8 +1841,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO_GROUPED:onenterUnBoarding(ToPointVec2, Event, From, To) + +CARGO_GROUP:onenterUnBoarding(ToPointVec2, Event, From, To)
    @@ -1956,8 +1877,8 @@ The amount of seconds to delay the action.

    - -AI_CARGO_GROUPED:onenterUnLoaded(Core, Event, From, To, ToPointVec2) + +CARGO_GROUP:onenterUnLoaded(Core, Event, From, To, ToPointVec2)
    @@ -1998,8 +1919,8 @@ Point#POINT_VEC2

    - -AI_CARGO_GROUPED:onleaveBoarding(CargoCarrier, Event, From, To) + +CARGO_GROUP:onleaveBoarding(CargoCarrier, Event, From, To)
    @@ -2034,8 +1955,8 @@ Point#POINT_VEC2

    - -AI_CARGO_GROUPED:onleaveUnBoarding(ToPointVec2, Event, From, To) + +CARGO_GROUP:onleaveUnBoarding(ToPointVec2, Event, From, To)
    @@ -2068,14 +1989,14 @@ Point#POINT_VEC2

    -

    Type AI_CARGO_PACKAGE

    +

    Type CARGO_PACKAGE

    Field(s)

    - -AI_CARGO_PACKAGE.CargoCarrier + +CARGO_PACKAGE.CargoCarrier
    @@ -2088,8 +2009,8 @@ Point#POINT_VEC2

    - -AI_CARGO_PACKAGE.CargoInAir + +CARGO_PACKAGE.CargoInAir
    @@ -2102,8 +2023,8 @@ Point#POINT_VEC2

    #string - -AI_CARGO_PACKAGE.ClassName + +CARGO_PACKAGE.ClassName
    @@ -2115,8 +2036,8 @@ Point#POINT_VEC2

    - -AI_CARGO_PACKAGE:IsNear(CargoCarrier) + +CARGO_PACKAGE:IsNear(CargoCarrier)
    @@ -2141,13 +2062,13 @@ Point#POINT_VEC2

    - -AI_CARGO_PACKAGE:New(CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius) + +CARGO_PACKAGE:New(CargoCarrier, Type, Name, Weight, ReportRadius, NearRadius)
    -

    AICARGOPACKAGE Constructor.

    +

    CARGO_PACKAGE Constructor.

    Parameters

      @@ -2187,7 +2108,7 @@ The UNIT carrying the package.

    Return value

    -

    #AICARGOPACKAGE:

    +

    #CARGO_PACKAGE:

    @@ -2195,8 +2116,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterLoad(Event, From, To, CargoCarrier, Speed, LoadDistance, Angle) + +CARGO_PACKAGE:onafterLoad(Event, From, To, CargoCarrier, Speed, LoadDistance, Angle)
    @@ -2246,8 +2167,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterOnBoard(Event, From, To, CargoCarrier, Speed, BoardDistance, Angle, LoadDistance) + +CARGO_PACKAGE:onafterOnBoard(Event, From, To, CargoCarrier, Speed, BoardDistance, Angle, LoadDistance)
    @@ -2302,8 +2223,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterOnBoarded(Event, From, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle) + +CARGO_PACKAGE:onafterOnBoarded(Event, From, To, CargoCarrier, Speed, BoardDistance, LoadDistance, Angle)
    @@ -2358,8 +2279,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterUnBoard(Event, From, To, Speed, UnLoadDistance, UnBoardDistance, Radius, Angle, CargoCarrier) + +CARGO_PACKAGE:onafterUnBoard(Event, From, To, Speed, UnLoadDistance, UnBoardDistance, Radius, Angle, CargoCarrier)
    @@ -2419,8 +2340,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterUnBoarded(Event, From, To, CargoCarrier, Speed) + +CARGO_PACKAGE:onafterUnBoarded(Event, From, To, CargoCarrier, Speed)
    @@ -2460,8 +2381,8 @@ The UNIT carrying the package.

    - -AI_CARGO_PACKAGE:onafterUnLoad(Event, From, To, Distance, Angle, CargoCarrier, Speed) + +CARGO_PACKAGE:onafterUnLoad(Event, From, To, Distance, Angle, CargoCarrier, Speed)
    @@ -2509,14 +2430,14 @@ The UNIT carrying the package.

    -

    Type AI_CARGO_REPRESENTABLE

    +

    Type CARGO_REPORTABLE

    Field(s)

    #string - -AI_CARGO_REPRESENTABLE.ClassName + +CARGO_REPORTABLE.ClassName
    @@ -2528,13 +2449,39 @@ The UNIT carrying the package.

    - -AI_CARGO_REPRESENTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius) + +CARGO_REPORTABLE:IsInRadius(PointVec2)
    -

    AICARGOREPRESENTABLE Constructor.

    +

    Check if CargoCarrier is in the ReportRadius for the Cargo to be Loaded.

    + +

    Parameter

    + +

    Return value

    + +

    #boolean:

    + + +
    +
    +
    +
    + + +CARGO_REPORTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius) + +
    +
    + +

    CARGO_REPORTABLE Constructor.

    Parameters

      @@ -2573,7 +2520,7 @@ The UNIT carrying the package.

    Return value

    -

    #AICARGOREPRESENTABLE:

    +

    #CARGO_REPORTABLE:

    @@ -2581,8 +2528,91 @@ The UNIT carrying the package.

    - -AI_CARGO_REPRESENTABLE:RouteTo(ToPointVec2, Speed) + +CARGO_REPORTABLE.ReportRadius + +
    +
    + + + +
    +
    + +

    Type CARGO_REPRESENTABLE

    +

    Field(s)

    +
    +
    + + #string + +CARGO_REPRESENTABLE.ClassName + +
    +
    + + + +
    +
    +
    +
    + + +CARGO_REPRESENTABLE:New(CargoObject, Type, Name, Weight, ReportRadius, NearRadius) + +
    +
    + +

    CARGO_REPRESENTABLE Constructor.

    + +

    Parameters

    +
      +
    • + +

      Wrapper.Controllable#Controllable CargoObject :

      + +
    • +
    • + +

      #string Type :

      + +
    • +
    • + +

      #string Name :

      + +
    • +
    • + +

      #number Weight :

      + +
    • +
    • + +

      #number ReportRadius : +(optional)

      + +
    • +
    • + +

      #number NearRadius : +(optional)

      + +
    • +
    +

    Return value

    + +

    #CARGO_REPRESENTABLE:

    + + +
    +
    +
    +
    + + +CARGO_REPRESENTABLE:RouteTo(ToPointVec2, Speed)
    @@ -2604,19 +2634,19 @@ The UNIT carrying the package.

    Return value

    -

    #AICARGOREPRESENTABLE:

    +

    #CARGO_REPRESENTABLE:

    -

    Type AI_CARGO_UNIT

    +

    Type CARGO_UNIT

    Field(s)

    - -AI_CARGO_UNIT.CargoCarrier + +CARGO_UNIT.CargoCarrier
    @@ -2629,8 +2659,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT.CargoInAir + +CARGO_UNIT.CargoInAir
    @@ -2643,8 +2673,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT.CargoObject + +CARGO_UNIT.CargoObject
    @@ -2656,17 +2686,17 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:Destroy() + +CARGO_UNIT:Destroy()
    -

    AICARGOUNIT Destructor.

    +

    CARGO_UNIT Destructor.

    Return value

    -

    #AICARGOUNIT:

    +

    #CARGO_UNIT:

    @@ -2674,13 +2704,13 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:New(CargoUnit, Type, Name, Weight, ReportRadius, NearRadius) + +CARGO_UNIT:New(CargoUnit, Type, Name, Weight, ReportRadius, NearRadius)
    -

    AICARGOUNIT Constructor.

    +

    CARGO_UNIT Constructor.

    Parameters

      @@ -2719,7 +2749,7 @@ The UNIT carrying the package.

    Return value

    -

    #AICARGOUNIT:

    +

    #CARGO_UNIT:

    @@ -2727,8 +2757,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT.OnUnLoadedCallBack + +CARGO_UNIT.OnUnLoadedCallBack
    @@ -2740,8 +2770,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, ...) + +CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, NearRadius, ...)
    @@ -2772,6 +2802,11 @@ The UNIT carrying the package.

  • +

    NearRadius :

    + +
  • +
  • +

    ... :

  • @@ -2781,8 +2816,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onafterUnBoarding(Event, From, To, ToPointVec2) + +CARGO_UNIT:onafterUnBoarding(Event, From, To, ToPointVec2)
    @@ -2817,8 +2852,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, ...) + +CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, NearRadius, ...)
    @@ -2849,6 +2884,11 @@ The UNIT carrying the package.

  • +

    NearRadius :

    + +
  • +
  • +

    ... :

  • @@ -2858,8 +2898,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onenterLoaded(Event, From, To, CargoCarrier) + +CARGO_UNIT:onenterLoaded(Event, From, To, CargoCarrier)
    @@ -2894,8 +2934,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onenterUnBoarding(Event, From, To, ToPointVec2) + +CARGO_UNIT:onenterUnBoarding(Event, From, To, ToPointVec2)
    @@ -2930,8 +2970,8 @@ The UNIT carrying the package.

    - -AI_CARGO_UNIT:onenterUnLoaded(Event, From, To, Core, ToPointVec2) + +CARGO_UNIT:onenterUnLoaded(Event, From, To, Core, ToPointVec2)
    @@ -2972,8 +3012,8 @@ Point#POINT_VEC2

    - -AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, ...) + +CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, NearRadius, ...)
    @@ -3004,6 +3044,11 @@ Point#POINT_VEC2

  • +

    NearRadius :

    + +
  • +
  • +

    ... :

  • @@ -3013,8 +3058,8 @@ Point#POINT_VEC2

    - -AI_CARGO_UNIT:onleaveUnBoarding(Event, From, To, ToPointVec2) + +CARGO_UNIT:onleaveUnBoarding(Event, From, To, ToPointVec2)
    diff --git a/docs/Documentation/Fsm.html b/docs/Documentation/Fsm.html index baf5bc616..9c7864cf4 100644 --- a/docs/Documentation/Fsm.html +++ b/docs/Documentation/Fsm.html @@ -1582,7 +1582,7 @@ A string defining the start state.

    - #string + FSM._StartState @@ -1881,6 +1881,7 @@ A string defining the start state.

    + FSM.current diff --git a/docs/Documentation/MOVEMENT.html b/docs/Documentation/MOVEMENT.html index c8bfd7123..eb273ac47 100644 --- a/docs/Documentation/MOVEMENT.html +++ b/docs/Documentation/MOVEMENT.html @@ -211,7 +211,6 @@ on defined intervals (currently every minute).

    - #number MOVEMENT.AliveUnits @@ -220,9 +219,6 @@ on defined intervals (currently every minute).

    - -

    Contains the counter how many units are currently alive

    -
    diff --git a/docs/Documentation/Point.html b/docs/Documentation/Point.html index a1fb3c45e..d01447df5 100644 --- a/docs/Documentation/Point.html +++ b/docs/Documentation/Point.html @@ -1367,6 +1367,7 @@ The new calculated POINT_VEC2.

    + POINT_VEC2.z diff --git a/docs/Documentation/Spawn.html b/docs/Documentation/Spawn.html index 934853fcd..3b523abef 100644 --- a/docs/Documentation/Spawn.html +++ b/docs/Documentation/Spawn.html @@ -2117,9 +2117,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.

    -
    @@ -2573,6 +2570,9 @@ when nothing was spawned.

    + +

    Overwrite unit names by default with group name.

    +
    @@ -2587,9 +2587,6 @@ when nothing was spawned.

    - -

    By default, no InitLimit

    -
    @@ -2625,7 +2622,7 @@ when nothing was spawned.

    - #number + SPAWN.SpawnMaxGroups @@ -2642,7 +2639,7 @@ when nothing was spawned.

    - #number + SPAWN.SpawnMaxUnitsAlive diff --git a/docs/Documentation/index.html b/docs/Documentation/index.html index 97b11e2e6..78c9b22f9 100644 --- a/docs/Documentation/index.html +++ b/docs/Documentation/index.html @@ -179,18 +179,7 @@ CLIENTS in a SET_CLIENT collection, which are not occupied by human players.

    AI_CARGO_UNIT.CargoCarrierCARGO_UNIT.CargoCarrier
    AI_CARGO_UNIT.CargoInAirCARGO_UNIT.CargoInAir
    AI_CARGO_UNIT.CargoObjectCARGO_UNIT.CargoObject
    AI_CARGO_UNIT:Destroy()CARGO_UNIT:Destroy() -

    AICARGOUNIT Destructor.

    +

    CARGO_UNIT Destructor.

    AI_CARGO_UNIT:New(CargoUnit, Type, Name, Weight, ReportRadius, NearRadius)CARGO_UNIT:New(CargoUnit, Type, Name, Weight, ReportRadius, NearRadius) -

    AICARGOUNIT Constructor.

    +

    CARGO_UNIT Constructor.

    AI_CARGO_UNIT.OnUnLoadedCallBackCARGO_UNIT.OnUnLoadedCallBack
    AI_CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, ...)CARGO_UNIT:onafterBoard(Event, From, To, CargoCarrier, NearRadius, ...)

    Board Event.

    AI_CARGO_UNIT:onafterUnBoarding(Event, From, To, ToPointVec2)CARGO_UNIT:onafterUnBoarding(Event, From, To, ToPointVec2)

    UnBoard Event.

    AI_CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, ...)CARGO_UNIT:onenterBoarding(Event, From, To, CargoCarrier, NearRadius, ...)

    Enter Boarding State.

    AI_CARGO_UNIT:onenterLoaded(Event, From, To, CargoCarrier)CARGO_UNIT:onenterLoaded(Event, From, To, CargoCarrier)

    Loaded State.

    AI_CARGO_UNIT:onenterUnBoarding(Event, From, To, ToPointVec2)CARGO_UNIT:onenterUnBoarding(Event, From, To, ToPointVec2)

    Enter UnBoarding State.

    AI_CARGO_UNIT:onenterUnLoaded(Event, From, To, Core, ToPointVec2)CARGO_UNIT:onenterUnLoaded(Event, From, To, Core, ToPointVec2)

    Enter UnLoaded State.

    AI_CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, ...)CARGO_UNIT:onleaveBoarding(Event, From, To, CargoCarrier, NearRadius, ...)

    Leave Boarding State.

    AI_CARGO_UNIT:onleaveUnBoarding(Event, From, To, ToPointVec2)CARGO_UNIT:onleaveUnBoarding(Event, From, To, ToPointVec2)

    Leave UnBoarding State.

    Cargo -

    Single-Player:Yes / Multi-Player:Yes / AI:Yes / Human:No / Types:Ground --
    -Management of logical cargo objects, that can be transported from and to transportation carriers.

    - -

    Banner Image

    - -
    - -

    Cargo can be of various forms, always are composed out of ONE object ( one unit or one static or one slingload crate ):

    - -
      -
    • AICARGOUNIT, represented by a Unit in a Group: Cargo can be represented by a Unit in a Group.
    • -
    +

    Core -- Management of CARGO logistics, that can be transported from and to transportation carriers.