mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
Progress
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 } )
|
||||||
|
|
||||||
|
TaskGroup:SetState( TaskGroup, "Assigned", nil )
|
||||||
|
|
||||||
self:RemoveMenuForGroup( TaskGroup )
|
self:RemoveMenuForGroup( TaskGroup )
|
||||||
|
|
||||||
local TaskUnits = TaskGroup:GetUnits()
|
local TaskUnits = TaskGroup:GetUnits()
|
||||||
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 or PlayerName ~= "" then
|
||||||
self:UnAssignFromUnit( TaskUnit )
|
self:UnAssignFromUnit( TaskUnit )
|
||||||
end
|
|
||||||
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 )
|
||||||
|
|
||||||
|
self:ReportDetails()
|
||||||
|
|
||||||
local self = MenuParam.self
|
|
||||||
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
Reference in New Issue
Block a user