From 0340d17ab887f5ab093317d7ec7c8dacb118d633 Mon Sep 17 00:00:00 2001 From: Applevangelist Date: Sat, 31 Dec 2022 15:56:01 +0100 Subject: [PATCH] #PLAYERTASKCONTROLLER * honing the menu build a bit --- Moose Development/Moose/Ops/PlayerTask.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Moose Development/Moose/Ops/PlayerTask.lua b/Moose Development/Moose/Ops/PlayerTask.lua index 3485cd4c1..6297744d1 100644 --- a/Moose Development/Moose/Ops/PlayerTask.lua +++ b/Moose Development/Moose/Ops/PlayerTask.lua @@ -1443,7 +1443,7 @@ PLAYERTASKCONTROLLER.Messages = { --- PLAYERTASK class version. -- @field #string version -PLAYERTASKCONTROLLER.version="0.1.54" +PLAYERTASKCONTROLLER.version="0.1.55" --- Create and run a new TASKCONTROLLER instance. -- @param #PLAYERTASKCONTROLLER self @@ -2821,6 +2821,7 @@ function PLAYERTASKCONTROLLER:_JoinTask(Group, Client, Task, Force) Task:AddClient(Client) local joined = self.gettext:GetEntry("PILOTJOINEDTASK",self.locale) -- PILOTJOINEDTASK = "%s, %s. You have been assigned %s task %03d", + --self:I(string.format("Task %s | TaskType %s | Number %s | Type %s",self.MenuName or self.Name, Task.TTSType, tonumber(Task.PlayerTaskNr),type(Task.PlayerTaskNr))) local text = string.format(joined,ttsplayername, self.MenuName or self.Name, Task.TTSType, Task.PlayerTaskNr) self:T(self.lid..text) if not self.NoScreenOutput then @@ -3300,6 +3301,9 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) joinorabort = true end + local tasktypes = self:_GetAvailableTaskTypes() + local taskpertype = self:_GetTasksPerType() + for _,_client in pairs(clients) do if _client and _client:IsAlive() then local client = _client -- Wrapper.Client#CLIENT @@ -3348,6 +3352,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) --self.PlayerMenu[playername]:RemoveSubMenus() --oldmenu = self.PlayerMenu[playername] --self.PlayerMenu[playername] = nil + self.PlayerMenu[playername]:RemoveSubMenus() self.PlayerMenu[playername] = MENU_GROUP_DELAYED:New(group,menuname,self.MenuParent) self.PlayerMenu[playername]:SetTag(newtag) self.PlayerMenu[playername].PTTimeStamp = timer.getAbsTime() @@ -3394,8 +3399,6 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) local abort = MENU_GROUP_COMMAND_DELAYED:New(group,menuabort,active,self._AbortTask,self,group,client):SetTag(newtag) if self.activehasinfomenu and self.taskinfomenu then self:T("Building Active-Info Menus for "..playername) - local tasktypes = self:_GetAvailableTaskTypes() - local taskpertype = self:_GetTasksPerType() if self.PlayerInfoMenu[playername] then self.PlayerInfoMenu[playername]:RemoveSubMenus(nil,oldtag) end @@ -3407,10 +3410,14 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) --- -- JOIN TASK MENU --- - local tasktypes = self:_GetAvailableTaskTypes() - local taskpertype = self:_GetTasksPerType() local menujoin = self.gettext:GetEntry("MENUJOIN",self.locale) + + if self.PlayerJoinMenu[playername] then + self.PlayerJoinMenu[playername]:RemoveSubMenus(nil,oldtag) + end + local joinmenu = MENU_GROUP_DELAYED:New(group,menujoin,topmenu):SetTag(newtag) + self.PlayerJoinMenu[playername] = joinmenu local ttypes = {} local taskmenu = {} @@ -3467,6 +3474,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced,fromsuccess) --- if rebuilddone then self.PlayerMenu[playername]:RemoveSubMenus(nil,oldtag) + self.PlayerMenu[playername]:Set() self.PlayerMenu[playername]:Refresh() end end