mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Fixes bug that would loop over every unit in the group.
Only the players in a group should be unassigned, not all units.
This commit is contained in:
parent
975566eb3c
commit
bccc4abf26
@ -990,7 +990,6 @@ do -- FSM_PROCESS
|
|||||||
|
|
||||||
-- Copy Processes
|
-- Copy Processes
|
||||||
for ProcessID, Process in pairs( self:GetProcesses() ) do
|
for ProcessID, Process in pairs( self:GetProcesses() ) do
|
||||||
self:E( { Process} )
|
|
||||||
if Process.fsm then
|
if Process.fsm then
|
||||||
Process.fsm:Remove()
|
Process.fsm:Remove()
|
||||||
Process.fsm = nil
|
Process.fsm = nil
|
||||||
|
|||||||
@ -530,8 +530,9 @@ do -- Group Assignment
|
|||||||
|
|
||||||
--- UnAssign the @{Task} from a @{Group}.
|
--- UnAssign the @{Task} from a @{Group}.
|
||||||
-- @param #TASK self
|
-- @param #TASK self
|
||||||
|
-- @param Wrapper.Group#GROUP TaskGroup
|
||||||
function TASK:UnAssignFromGroup( TaskGroup )
|
function TASK:UnAssignFromGroup( TaskGroup )
|
||||||
self:F2( { TaskGroup } )
|
self:F2( { TaskGroup = TaskGroup:GetName() } )
|
||||||
|
|
||||||
self:ClearGroupAssignment( TaskGroup )
|
self:ClearGroupAssignment( TaskGroup )
|
||||||
|
|
||||||
@ -539,7 +540,7 @@ do -- Group Assignment
|
|||||||
for UnitID, UnitData in pairs( TaskUnits ) do
|
for UnitID, UnitData in pairs( TaskUnits ) do
|
||||||
local TaskUnit = UnitData -- Wrapper.Unit#UNIT
|
local TaskUnit = UnitData -- Wrapper.Unit#UNIT
|
||||||
local PlayerName = TaskUnit:GetPlayerName()
|
local PlayerName = TaskUnit:GetPlayerName()
|
||||||
if PlayerName ~= nil or PlayerName ~= "" then
|
if PlayerName ~= nil and PlayerName ~= "" then -- Only remove units that have players!
|
||||||
self:UnAssignFromUnit( TaskUnit )
|
self:UnAssignFromUnit( TaskUnit )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -947,7 +948,7 @@ end
|
|||||||
-- @param Wrapper.Unit#UNIT TaskUnit
|
-- @param Wrapper.Unit#UNIT TaskUnit
|
||||||
-- @return #TASK self
|
-- @return #TASK self
|
||||||
function TASK:RemoveStateMachine( TaskUnit )
|
function TASK:RemoveStateMachine( TaskUnit )
|
||||||
self:F( { TaskUnit, self.Fsm[TaskUnit] ~= nil } )
|
self:F( { TaskUnit = TaskUnit:GetName(), HasFsm = ( self.Fsm[TaskUnit] ~= nil ) } )
|
||||||
|
|
||||||
--self:E( self.Fsm )
|
--self:E( self.Fsm )
|
||||||
--for TaskUnitT, Fsm in pairs( self.Fsm ) do
|
--for TaskUnitT, Fsm in pairs( self.Fsm ) do
|
||||||
@ -956,13 +957,16 @@ function TASK:RemoveStateMachine( TaskUnit )
|
|||||||
--self.Fsm[TaskUnit] = nil
|
--self.Fsm[TaskUnit] = nil
|
||||||
--end
|
--end
|
||||||
|
|
||||||
|
if self.Fsm[TaskUnit] then
|
||||||
self.Fsm[TaskUnit]:Remove()
|
self.Fsm[TaskUnit]:Remove()
|
||||||
self.Fsm[TaskUnit] = nil
|
self.Fsm[TaskUnit] = nil
|
||||||
|
end
|
||||||
|
|
||||||
collectgarbage()
|
collectgarbage()
|
||||||
self:E( "Garbage Collected, Processes should be finalized now ...")
|
self:E( "Garbage Collected, Processes should be finalized now ...")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Checks if there is a FiniteStateMachine assigned to Task@{Unit} for @{Task}
|
--- Checks if there is a FiniteStateMachine assigned to Task@{Unit} for @{Task}
|
||||||
-- @param #TASK self
|
-- @param #TASK self
|
||||||
-- @param Wrapper.Unit#UNIT TaskUnit
|
-- @param Wrapper.Unit#UNIT TaskUnit
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user