diff --git a/Moose Development/Moose/Core/Fsm.lua b/Moose Development/Moose/Core/Fsm.lua index a4a833da2..7469a3726 100644 --- a/Moose Development/Moose/Core/Fsm.lua +++ b/Moose Development/Moose/Core/Fsm.lua @@ -981,8 +981,9 @@ do -- FSM_PROCESS self:T( "*** FSM *** " .. step .. " *** " .. params[1] .. " --> " .. params[2] .. " --> " .. params[3] .. " *** Task: " .. self.Task:GetName() .. ", TaskUnit: " .. self.Controllable:GetName() ) end self._EventSchedules[EventName] = nil + local Result, Value if self.Controllable and self.Controllable:IsAlive() == true then - local Result, Value = xpcall( function() return self[handler]( self, self.Controllable, self.Task, unpack( params ) ) end, ErrorHandler ) + Result, Value = xpcall( function() return self[handler]( self, self.Controllable, self.Task, unpack( params ) ) end, ErrorHandler ) end return Value --return self[handler]( self, self.Controllable, unpack( params ) ) @@ -1204,10 +1205,22 @@ do -- FSM_TASK function FSM_TASK:_call_handler( step, trigger, params, EventName ) local handler = step .. trigger + local ErrorHandler = function( errmsg ) + + env.info( "Error in SCHEDULER function:" .. errmsg ) + if BASE.Debug ~= nil then + env.info( BASE.Debug.traceback() ) + end + + return errmsg + end + if self[handler] then self:T( "*** FSM *** " .. step .. " *** " .. params[1] .. " --> " .. params[2] .. " --> " .. params[3] .. " *** Task: " .. self.TaskName ) self._EventSchedules[EventName] = nil - return self[handler]( self, unpack( params ) ) + --return self[handler]( self, unpack( params ) ) + local Result, Value = xpcall( function() return self[handler]( self, unpack( params ) ) end, ErrorHandler ) + return Value end end diff --git a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua index 8f85ef7d2..44db945c7 100644 --- a/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2A_Dispatcher.lua @@ -574,15 +574,15 @@ do -- TASK_A2A_DISPATCHER self:Success( Task ) end - function Task.onenterCancelled( Task, From, Event, To ) + function Task.OnEnterCancelled( Task, From, Event, To ) self:Cancelled( Task ) end - function Task.onenterFailed( Task, From, Event, To ) + function Task.OnEnterFailed( Task, From, Event, To ) self:Failed( Task ) end - function Task.onenterAborted( Task, From, Event, To ) + function Task.OnEnterAborted( Task, From, Event, To ) self:Aborted( Task ) end diff --git a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua index 13cd2c5e7..499efcf89 100644 --- a/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_A2G_Dispatcher.lua @@ -775,15 +775,15 @@ do -- TASK_A2G_DISPATCHER self:Success( Task ) end - function Task.onenterCancelled( Task, From, Event, To ) + function Task.OnEnterCancelled( Task, From, Event, To ) self:Cancelled( Task ) end - function Task.onenterFailed( Task, From, Event, To ) + function Task.OnEnterFailed( Task, From, Event, To ) self:Failed( Task ) end - function Task.onenterAborted( Task, From, Event, To ) + function Task.OnEnterAborted( Task, From, Event, To ) self:Aborted( Task ) end diff --git a/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua b/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua index d1473dd4d..e82ac8ba3 100644 --- a/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua +++ b/Moose Development/Moose/Tasking/Task_Cargo_Dispatcher.lua @@ -686,15 +686,15 @@ do -- TASK_CARGO_DISPATCHER self:Success( Task ) end - function Transport.Task.onenterCancelled( Task, From, Event, To ) + function Transport.Task.OnEnterCancelled( Task, From, Event, To ) self:Cancelled( Task ) end - function Transport.Task.onenterFailed( Task, From, Event, To ) + function Transport.Task.OnEnterFailed( Task, From, Event, To ) self:Failed( Task ) end - function Transport.Task.onenterAborted( Task, From, Event, To ) + function Transport.Task.OnEnterAborted( Task, From, Event, To ) self:Aborted( Task ) end end