diff --git a/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua b/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua index c0eed577e..e3da2ee29 100644 --- a/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua +++ b/Moose Development/Moose/AI/AI_Cargo_Dispatcher.lua @@ -308,7 +308,7 @@ function AI_CARGO_DISPATCHER:onafterMonitor() self:Pickup( Carrier, Cargo ) end - function AI_Cargo.OnAfterLoad( AI_Cargo, Carrier ) + function AI_Cargo.OnAfterLoad( AI_Cargo, Carrier, From, Event, To, Cargo ) self:Loading( Carrier ) end @@ -316,16 +316,16 @@ function AI_CARGO_DISPATCHER:onafterMonitor() self:Loaded( Carrier, Cargo ) end - function AI_Cargo.OnAfterDeploy( AI_Cargo, Carrier ) - self:Deploy( Carrier ) + function AI_Cargo.OnAfterDeploy( AI_Cargo, Carrier, From, Event, To, Cargo ) + self:Deploy( Carrier, Cargo ) end - function AI_Cargo.OnAfterUnload( AI_Cargo, Carrier ) - self:Unloading( Carrier ) + function AI_Cargo.OnAfterUnload( AI_Cargo, Carrier, From, Event, To, Cargo ) + self:Unloading( Carrier, Cargo ) end - function AI_Cargo.OnAfterUnloaded( AI_Cargo, Carrier ) - self:Unloaded( Carrier ) + function AI_Cargo.OnAfterUnloaded( AI_Cargo, Carrier, From, Event, To, Cargo ) + self:Unloaded( Carrier, Cargo ) end end @@ -405,7 +405,7 @@ end -- @param #number Delay function AI_CARGO_DISPATCHER:onafterStart( From, Event, To ) - self:Monitor() + self:__Monitor( -1 ) end --- Stop Handler OnBefore for AI_CARGO_DISPATCHER @@ -434,16 +434,27 @@ end ---- Make a Carrier run for a cargo deploy action after the cargo Pickup trigger has been initiated, by default. +--- Loaded Handler OnAfter for AI_CARGO_DISPATCHER +-- @function [parent=#AI_CARGO_DISPATCHER] OnAfterLoaded -- @param #AI_CARGO_DISPATCHER self --- @param From --- @param Event --- @param To +-- @param #string From +-- @param #string Event +-- @param #string To -- @param Wrapper.Group#GROUP Carrier -- @param Cargo.Cargo#CARGO Cargo --- @return #AI_CARGO_DISPATCHER -function AI_CARGO_DISPATCHER:OnAfterPickup( From, Event, To, Carrier, Cargo ) -end + +--- Unloaded Handler OnAfter for AI_CARGO_DISPATCHER +-- @function [parent=#AI_CARGO_DISPATCHER] OnAfterUnloaded +-- @param #AI_CARGO_DISPATCHER self +-- @param #string From +-- @param #string Event +-- @param #string To +-- @param Wrapper.Group#GROUP Carrier +-- @param Cargo.Cargo#CARGO Cargo + + + + --- Make a Carrier run for a cargo deploy action after the cargo has been loaded, by default. diff --git a/Moose Development/Moose/Cargo/Cargo.lua b/Moose Development/Moose/Cargo/Cargo.lua index 8869a14cc..f0f99dcdb 100644 --- a/Moose Development/Moose/Cargo/Cargo.lua +++ b/Moose Development/Moose/Cargo/Cargo.lua @@ -352,6 +352,17 @@ do -- CARGO return self.Name end + --- Get the current active object representing or being the Cargo. + -- @param #CARGO self + -- @return Wrapper.Positionable#POSITIONABLE The object representing or being the Cargo. + function CARGO:GetObject() + if self:IsLoaded() then + return self.CargoCarrier + else + return self.CargoObject + end + end + --- Get the object name of the Cargo. -- @param #CARGO self -- @return #string The object name of the Cargo. diff --git a/Moose Development/Moose/Cargo/CargoGroup.lua b/Moose Development/Moose/Cargo/CargoGroup.lua index 4780a8f55..ed84fd75f 100644 --- a/Moose Development/Moose/Cargo/CargoGroup.lua +++ b/Moose Development/Moose/Cargo/CargoGroup.lua @@ -107,7 +107,7 @@ do -- CARGO_GROUP self.CargoGroup = GROUP:NewTemplate( GroupTemplate, GroupTemplate.CoalitionID, GroupTemplate.CategoryID, GroupTemplate.CountryID) -- Now we spawn the new group based on the template created. - _DATABASE:Spawn( GroupTemplate ) + self.CargoObject = _DATABASE:Spawn( GroupTemplate ) self:SetWeight( WeightGroup ) self.CargoLimit = 10 @@ -169,7 +169,10 @@ do -- CARGO_GROUP _DATABASE:Spawn( GroupTemplate ) end end + + self.CargoObject = nil end + end @@ -209,12 +212,12 @@ do -- CARGO_GROUP end -- Then we register the new group in the database - self.CargoGroup = GROUP:NewTemplate( GroupTemplate, GroupTemplate.CoalitionID, GroupTemplate.CategoryID, GroupTemplate.CountryID) + self.CargoGroup = GROUP:NewTemplate( GroupTemplate, GroupTemplate.CoalitionID, GroupTemplate.CategoryID, GroupTemplate.CountryID ) self:F( { "Regroup", GroupTemplate } ) -- Now we spawn the new group based on the template created. - _DATABASE:Spawn( GroupTemplate ) + self.CargoObject = _DATABASE:Spawn( GroupTemplate ) end end diff --git a/Moose Development/Moose/Tasking/DetectionManager.lua b/Moose Development/Moose/Tasking/DetectionManager.lua index 6252dc0a4..5e95771dd 100644 --- a/Moose Development/Moose/Tasking/DetectionManager.lua +++ b/Moose Development/Moose/Tasking/DetectionManager.lua @@ -122,6 +122,48 @@ do -- DETECTION MANAGER -- @function [parent=#DETECTION_MANAGER] __Stop -- @param #DETECTION_MANAGER self -- @param #number Delay + + self:AddTransition( "Started", "Success", "Started" ) + + --- Success Handler OnAfter for DETECTION_MANAGER + -- @function [parent=#DETECTION_MANAGER] OnAfterSuccess + -- @param #DETECTION_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + + self:AddTransition( "Started", "Failed", "Started" ) + + --- Failed Handler OnAfter for DETECTION_MANAGER + -- @function [parent=#DETECTION_MANAGER] OnAfterFailed + -- @param #DETECTION_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + + self:AddTransition( "Started", "Aborted", "Started" ) + + --- Aborted Handler OnAfter for DETECTION_MANAGER + -- @function [parent=#DETECTION_MANAGER] OnAfterAborted + -- @param #DETECTION_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + self:AddTransition( "Started", "Cancelled", "Started" ) + + --- Cancelled Handler OnAfter for DETECTION_MANAGER + -- @function [parent=#DETECTION_MANAGER] OnAfterCancelled + -- @param #DETECTION_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task self:AddTransition( "Started", "Report", "Started" ) diff --git a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua index a3fc20c88..e385fdd02 100644 --- a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua @@ -200,6 +200,7 @@ do -- TASK_A2A_DISPATCHER self.Detection:SetRefreshTimeInterval( 30 ) self:AddTransition( "Started", "Assign", "Started" ) + --- OnAfter Transition Handler for Event Assign. -- @function [parent=#TASK_A2A_DISPATCHER] OnAfterAssign @@ -210,7 +211,7 @@ do -- TASK_A2A_DISPATCHER -- @param Tasking.Task_A2A#TASK_A2A Task -- @param Wrapper.Unit#UNIT TaskUnit -- @param #string PlayerName - + self:__Start( 5 ) return self @@ -561,6 +562,22 @@ do -- TASK_A2A_DISPATCHER Task:SetTargetZone( DetectedZone, DetectedItem.Coordinate.y, DetectedItem.Coordinate.Heading ) Task:SetDispatcher( self ) Mission:AddTask( Task ) + + function Task.OnEnterSuccess( Task, From, Event, To ) + self:Success( Task ) + end + + function Task.onenterCancelled( Task, From, Event, To ) + self:Cancelled( Task ) + end + + function Task.onenterFailed( Task, From, Event, To ) + self:Failed( Task ) + end + + function Task.onenterAborted( Task, From, Event, To ) + self:Aborted( Task ) + end TaskReport:Add( Task:GetName() ) else diff --git a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua index 256ca2db2..dce26950b 100644 --- a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua @@ -761,6 +761,23 @@ do -- TASK_A2G_DISPATCHER Task:SetDispatcher( self ) Task:UpdateTaskInfo( DetectedItem ) Mission:AddTask( Task ) + + function Task.OnEnterSuccess( Task, From, Event, To ) + self:Success( Task ) + end + + function Task.onenterCancelled( Task, From, Event, To ) + self:Cancelled( Task ) + end + + function Task.onenterFailed( Task, From, Event, To ) + self:Failed( Task ) + end + + function Task.onenterAborted( Task, From, Event, To ) + self:Aborted( Task ) + end + TaskReport:Add( Task:GetName() ) else diff --git a/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua index 7b3967d5e..1b8dd610f 100644 --- a/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua @@ -578,6 +578,24 @@ do -- TASK_CARGO_DISPATCHER else Transport.Task:SetDeployZones( self.DefaultDeployZones or {} ) end + + function Transport.Task.OnEnterSuccess( Task, From, Event, To ) + self:Success( Task ) + end + + function Transport.Task.onenterCancelled( Task, From, Event, To ) + self:Cancelled( Task ) + end + + function Transport.Task.onenterFailed( Task, From, Event, To ) + self:Failed( Task ) + end + + function Transport.Task.onenterAborted( Task, From, Event, To ) + self:Aborted( Task ) + end + + end end diff --git a/Moose Development/Moose/Tasking/Task_Manager.lua b/Moose Development/Moose/Tasking/Task_Manager.lua index 340fd8233..fe61dac24 100644 --- a/Moose Development/Moose/Tasking/Task_Manager.lua +++ b/Moose Development/Moose/Tasking/Task_Manager.lua @@ -111,6 +111,48 @@ do -- TASK_MANAGER self:AddTransition( "Started", "Manage", "Started" ) + self:AddTransition( "Started", "Success", "Started" ) + + --- Success Handler OnAfter for TASK_MANAGER + -- @function [parent=#TASK_MANAGER] OnAfterSuccess + -- @param #TASK_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + + self:AddTransition( "Started", "Failed", "Started" ) + + --- Failed Handler OnAfter for TASK_MANAGER + -- @function [parent=#TASK_MANAGER] OnAfterFailed + -- @param #TASK_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + + self:AddTransition( "Started", "Aborted", "Started" ) + + --- Aborted Handler OnAfter for TASK_MANAGER + -- @function [parent=#TASK_MANAGER] OnAfterAborted + -- @param #TASK_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + + self:AddTransition( "Started", "Cancelled", "Started" ) + + --- Cancelled Handler OnAfter for TASK_MANAGER + -- @function [parent=#TASK_MANAGER] OnAfterCancelled + -- @param #TASK_MANAGER self + -- @param #string From + -- @param #string Event + -- @param #string To + -- @param Tasking.Task#TASK Task + self:SetRefreshTimeInterval( 30 ) return self