This commit is contained in:
FlightControl
2017-03-10 14:09:15 +01:00
parent 907b9c9abb
commit cfc4dd8846
5 changed files with 70053 additions and 61 deletions

View File

@@ -794,8 +794,9 @@ do
-- @param #MENU_GROUP self -- @param #MENU_GROUP self
-- @return #MENU_GROUP self -- @return #MENU_GROUP self
function MENU_GROUP:RemoveSubMenus() function MENU_GROUP:RemoveSubMenus()
self:F( self.MenuPath ) self:F2( self.MenuPath )
self:T( { "Removing Group SubMenus:", self.MenuGroup:GetName(), self.MenuPath } )
for MenuID, Menu in pairs( self.Menus ) do for MenuID, Menu in pairs( self.Menus ) do
Menu:Remove() Menu:Remove()
end end
@@ -806,7 +807,7 @@ do
-- @param #MENU_GROUP self -- @param #MENU_GROUP self
-- @return #nil -- @return #nil
function MENU_GROUP:Remove() function MENU_GROUP:Remove()
self:F( { self.MenuGroupID, self.MenuPath } ) self:F2( { self.MenuGroupID, self.MenuPath } )
self:RemoveSubMenus() self:RemoveSubMenus()
@@ -817,7 +818,7 @@ do
if self.ParentMenu then if self.ParentMenu then
self.ParentMenu.Menus[self.MenuPath] = nil self.ParentMenu.Menus[self.MenuPath] = nil
end end
self:E( self.MenuGroup._Menus[self.Path] ) self:T( { "Removing Group Menu:", self.MenuGroup:GetName(), self.MenuGroup._Menus[self.Path].Path } )
self.MenuGroup._Menus[self.Path] = nil self.MenuGroup._Menus[self.Path] = nil
self = nil self = nil
end end
@@ -856,7 +857,7 @@ do
self.MenuText = MenuText self.MenuText = MenuText
self.ParentMenu = ParentMenu self.ParentMenu = ParentMenu
self:T( { "Adding Command Menu ", MenuText, self.MenuParentPath } ) self:T( { "Adding Group Command Menu:", MenuGroup:GetName(), MenuText, self.MenuParentPath } )
self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, self.MenuParentPath, self.MenuCallHandler, arg ) self.MenuPath = missionCommands.addCommandForGroup( self.MenuGroupID, MenuText, self.MenuParentPath, self.MenuCallHandler, arg )
if ParentMenu and ParentMenu.Menus then if ParentMenu and ParentMenu.Menus then
@@ -873,14 +874,14 @@ do
-- @param #MENU_GROUP_COMMAND self -- @param #MENU_GROUP_COMMAND self
-- @return #nil -- @return #nil
function MENU_GROUP_COMMAND:Remove() function MENU_GROUP_COMMAND:Remove()
self:F( { self.MenuGroupID, self.MenuPath } ) self:F2( { self.MenuGroupID, self.MenuPath } )
if self.MenuGroup._Menus[self.Path] then if self.MenuGroup._Menus[self.Path] then
self = self.MenuGroup._Menus[self.Path] self = self.MenuGroup._Menus[self.Path]
missionCommands.removeItemForGroup( self.MenuGroupID, self.MenuPath ) missionCommands.removeItemForGroup( self.MenuGroupID, self.MenuPath )
self.ParentMenu.Menus[self.MenuPath] = nil self.ParentMenu.Menus[self.MenuPath] = nil
self:E( self.MenuGroup._Menus[self.Path] ) self:T( { "Removing Group Command Menu:", self.MenuGroup:GetName(), self.MenuGroup._Menus[self.Path].Path } )
self.MenuGroup._Menus[self.Path] = nil self.MenuGroup._Menus[self.Path] = nil
self = nil self = nil
end end

View File

@@ -273,10 +273,11 @@ function TASK:AbortUnit( PlayerUnit )
self:MessageToGroups( PlayerUnit:GetPlayerName() .. " aborted Task " .. self:GetName() ) self:MessageToGroups( PlayerUnit:GetPlayerName() .. " aborted Task " .. self:GetName() )
self:E( { TaskGroup = PlayerGroup:GetName(), GetUnits = PlayerGroup:GetUnits() } ) self:E( { TaskGroup = PlayerGroup:GetName(), GetUnits = PlayerGroup:GetUnits() } )
if #PlayerGroup:GetUnits() == 1 then if #PlayerGroup:GetUnits() == 1 then
self:UnAssignFromGroup( PlayerGroup )
PlayerGroup:SetState( PlayerGroup, "Assigned", nil ) PlayerGroup:SetState( PlayerGroup, "Assigned", nil )
self:RemoveMenuForGroup( PlayerGroup ) self:RemoveMenuForGroup( PlayerGroup )
end end
self:PlayerAborted( PlayerUnit ) self:Abort()
end end
end end
end end
@@ -450,28 +451,37 @@ function TASK:SendBriefingToAssignedGroups()
end end
--- Assign the @{Task} from the @{Group}s. --- UnAssign the @{Task} from the @{Group}s.
-- @param #TASK self -- @param #TASK self
function TASK:UnAssignFromGroups() function TASK:UnAssignFromGroups()
self:F2() self:F2()
for TaskGroupName, TaskGroup in pairs( self.SetGroup:GetSet() ) do for TaskGroupName, TaskGroup in pairs( self.SetGroup:GetSet() ) do
self:UnAssignFromGroup( TaskGroup )
end
end
TaskGroup:SetState( TaskGroup, "Assigned", nil ) --- UnAssign the @{Task} from a @{Group}.
-- @param #TASK self
function TASK:UnAssignFromGroup( TaskGroup )
self:F2( { TaskGroup } )
self:RemoveMenuForGroup( TaskGroup ) TaskGroup:SetState( TaskGroup, "Assigned", nil )
local TaskUnits = TaskGroup:GetUnits() self:RemoveMenuForGroup( TaskGroup )
for UnitID, UnitData in pairs( TaskUnits ) do
local TaskUnit = UnitData -- Wrapper.Unit#UNIT local TaskUnits = TaskGroup:GetUnits()
local PlayerName = TaskUnit:GetPlayerName() for UnitID, UnitData in pairs( TaskUnits ) do
if PlayerName ~= nil or PlayerName ~= "" then local TaskUnit = UnitData -- Wrapper.Unit#UNIT
self:UnAssignFromUnit( TaskUnit ) local PlayerName = TaskUnit:GetPlayerName()
end if PlayerName ~= nil or PlayerName ~= "" then
self:UnAssignFromUnit( TaskUnit )
end end
end end
end end
--- Returns if the @{Task} is assigned to the Group. --- Returns if the @{Task} is assigned to the Group.
-- @param #TASK self -- @param #TASK self
-- @param Wrapper.Group#GROUP TaskGroup -- @param Wrapper.Group#GROUP TaskGroup
@@ -482,10 +492,12 @@ function TASK:IsAssignedToGroup( TaskGroup )
if self:IsStateAssigned() then if self:IsStateAssigned() then
if TaskGroup:GetState( TaskGroup, "Assigned" ) == self then if TaskGroup:GetState( TaskGroup, "Assigned" ) == self then
self:T( { "Task is assigned to:", TaskGroup:GetName() } )
return true return true
end end
end end
self:T( { "Task is not assigned to:", TaskGroup:GetName() } )
return false return false
end end
@@ -531,8 +543,15 @@ end
-- @return #TASK self -- @return #TASK self
function TASK:RemoveMenu() function TASK:RemoveMenu()
for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do for TaskGroupID, TaskGroup in pairs( self.SetGroup:GetSet() ) do
self:RemoveMenuForGroup( TaskGroup ) local TaskGroup = TaskGroup -- Wrapper.Group#GROUP
if TaskGroup:IsAlive() then
if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
self:T( { "Remove Menu for Group:", TaskGroup:GetName() } )
self:RemoveMenuForGroup( TaskGroup )
end
end
end end
end end
@@ -541,10 +560,12 @@ end
-- @param #TASK self -- @param #TASK self
function TASK:SetMenuForGroup( TaskGroup ) function TASK:SetMenuForGroup( TaskGroup )
if not self:IsAssignedToGroup( TaskGroup ) then if not TaskGroup:GetState( TaskGroup, "Assigned" ) then
self:SetPlannedMenuForGroup( TaskGroup, self:GetTaskName() ) self:SetPlannedMenuForGroup( TaskGroup, self:GetTaskName() )
else else
self:SetAssignedMenuForGroup( TaskGroup ) if not self:IsAssignedToGroup( TaskGroup ) then
self:SetAssignedMenuForGroup( TaskGroup )
end
end end
end end
@@ -579,8 +600,8 @@ function TASK:SetAssignedMenuForGroup( TaskGroup )
self:E( { MissionMenu = MissionMenu } ) self:E( { MissionMenu = MissionMenu } )
local TaskTypeMenu = MENU_GROUP_COMMAND:New( TaskGroup, "Task Status", MissionMenu, self.MenuTaskStatus, { self = self, TaskGroup = TaskGroup } ) local TaskTypeMenu = MENU_GROUP_COMMAND:New( TaskGroup, "Task Status", MissionMenu, self.MenuTaskStatus, self, TaskGroup )
local TaskMenu = MENU_GROUP_COMMAND:New( TaskGroup, "Abort Task", MissionMenu, self.MenuTaskAbort, { self = self, TaskGroup = TaskGroup } ) local TaskMenu = MENU_GROUP_COMMAND:New( TaskGroup, "Abort Task", MissionMenu, self.MenuTaskAbort, self, TaskGroup )
return self return self
end end
@@ -608,12 +629,12 @@ function TASK.MenuAssignToGroup( MenuParam )
self:AssignToGroup( TaskGroup ) self:AssignToGroup( TaskGroup )
end end
function TASK.MenuTaskStatus( MenuParam ) --- Report the task status.
-- @param #TASK self
function TASK:MenuTaskStatus( TaskGroup )
local self = MenuParam.self self:ReportDetails()
local TaskGroup = MenuParam.TaskGroup
--self:AssignToGroup( TaskGroup )
end end
function TASK.MenuTaskAbort( MenuParam ) function TASK.MenuTaskAbort( MenuParam )

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff