#PLAYERTASKCONTROLLER

* Menu build changed slightly to delayed
This commit is contained in:
Applevangelist 2022-09-03 16:25:36 +02:00
parent df54d09494
commit e53ff167ee

View File

@ -863,7 +863,7 @@ do
-- MARKTASK = "%s, %s, copy, task %03d location marked on map!", -- MARKTASK = "%s, %s, copy, task %03d location marked on map!",
-- SMOKETASK = "%s, %s, copy, task %03d location smoked!", -- SMOKETASK = "%s, %s, copy, task %03d location smoked!",
-- FLARETASK = "%s, %s, copy, task %03d location illuminated!", -- FLARETASK = "%s, %s, copy, task %03d location illuminated!",
-- ABORTTASK = "%s, all stations, %s has aborted %s task %03d!", -- ABORTTASK = "All stations, %s, %s has aborted %s task %03d!",
-- UNKNOWN = "Unknown", -- UNKNOWN = "Unknown",
-- MENUTASKING = " Tasking ", -- MENUTASKING = " Tasking ",
-- MENUACTIVE = "Active Task", -- MENUACTIVE = "Active Task",
@ -1053,7 +1053,6 @@ PLAYERTASKCONTROLLER.Messages = {
INTERCEPTTS = "intercept", INTERCEPTTS = "intercept",
BOMBRUNWAYTTS = "bomb runway", BOMBRUNWAYTTS = "bomb runway",
HAVEACTIVETASK = "You already have one active task! Complete it first!", HAVEACTIVETASK = "You already have one active task! Complete it first!",
--PILOTJOINEDTASK = "%s, %s joined task %03d",
PILOTJOINEDTASK = "%s, %s. You have been assigned %s task %03d", PILOTJOINEDTASK = "%s, %s. You have been assigned %s task %03d",
TASKNAME = "%s Task ID %03d", TASKNAME = "%s Task ID %03d",
TASKNAMETTS = "%s Task ID %03d", TASKNAMETTS = "%s Task ID %03d",
@ -1065,7 +1064,7 @@ PLAYERTASKCONTROLLER.Messages = {
MARKTASK = "%s, %s, copy, task %03d location marked on map!", MARKTASK = "%s, %s, copy, task %03d location marked on map!",
SMOKETASK = "%s, %s, copy, task %03d location smoked!", SMOKETASK = "%s, %s, copy, task %03d location smoked!",
FLARETASK = "%s, %s, copy, task %03d location illuminated!", FLARETASK = "%s, %s, copy, task %03d location illuminated!",
ABORTTASK = "%s, all stations, %s has aborted %s task %03d!", ABORTTASK = "All stations, %s, %s has aborted %s task %03d!",
UNKNOWN = "Unknown", UNKNOWN = "Unknown",
MENUTASKING = " Tasking ", MENUTASKING = " Tasking ",
MENUACTIVE = "Active Task", MENUACTIVE = "Active Task",
@ -1111,7 +1110,6 @@ PLAYERTASKCONTROLLER.Messages = {
INTERCEPTTS = "Abfangen", INTERCEPTTS = "Abfangen",
BOMBRUNWAYTTS = "Startbahn Bombardieren", BOMBRUNWAYTTS = "Startbahn Bombardieren",
HAVEACTIVETASK = "Du hast einen aktiven Auftrag! Beende ihn zuerst!", HAVEACTIVETASK = "Du hast einen aktiven Auftrag! Beende ihn zuerst!",
--PILOTJOINEDTASK = "%s, %s. You have been assigned %s task %03d",
PILOTJOINEDTASK = "%s, %s hat Auftrag %s %03d angenommen", PILOTJOINEDTASK = "%s, %s hat Auftrag %s %03d angenommen",
TASKNAME = "%s Auftrag ID %03d", TASKNAME = "%s Auftrag ID %03d",
TASKNAMETTS = "%s Auftrag ID %03d", TASKNAMETTS = "%s Auftrag ID %03d",
@ -1158,7 +1156,7 @@ PLAYERTASKCONTROLLER.Messages = {
--- PLAYERTASK class version. --- PLAYERTASK class version.
-- @field #string version -- @field #string version
PLAYERTASKCONTROLLER.version="0.1.29" PLAYERTASKCONTROLLER.version="0.1.30"
--- Constructor --- Constructor
-- @param #PLAYERTASKCONTROLLER self -- @param #PLAYERTASKCONTROLLER self
@ -2380,11 +2378,14 @@ end
-- @return #PLAYERTASKCONTROLLER self -- @return #PLAYERTASKCONTROLLER self
function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced) function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
self:T(self.lid.."_BuildMenus") self:T(self.lid.."_BuildMenus")
local clients = self.ClientSet:GetAliveSet() local clients = self.ClientSet:GetAliveSet()
if Client then if Client then
clients = {Client} clients = {Client}
enforced = true enforced = true
end end
for _,_client in pairs(clients) do for _,_client in pairs(clients) do
if _client then if _client then
local client = _client -- Wrapper.Client#CLIENT local client = _client -- Wrapper.Client#CLIENT
@ -2415,7 +2416,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
end end
topmenu = self.PlayerMenu[playername] topmenu = self.PlayerMenu[playername]
else else
topmenu = MENU_GROUP:New(group,menuname,nil) topmenu = MENU_GROUP_DELAYED:New(group,menuname,nil)
self.PlayerMenu[playername] = topmenu self.PlayerMenu[playername] = topmenu
end end
@ -2431,16 +2432,16 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
local menuflare = self.gettext:GetEntry("MENUFLARE",self.locale) local menuflare = self.gettext:GetEntry("MENUFLARE",self.locale)
local menuabort = self.gettext:GetEntry("MENUABORT",self.locale) local menuabort = self.gettext:GetEntry("MENUABORT",self.locale)
local active = MENU_GROUP:New(group,menuactive,topmenu) local active = MENU_GROUP_DELAYED:New(group,menuactive,topmenu)
local info = MENU_GROUP_COMMAND:New(group,menuinfo,active,self._ActiveTaskInfo,self,group,client) local info = MENU_GROUP_COMMAND_DELAYED:New(group,menuinfo,active,self._ActiveTaskInfo,self,group,client)
local mark = MENU_GROUP_COMMAND:New(group,menumark,active,self._MarkTask,self,group,client) local mark = MENU_GROUP_COMMAND_DELAYED:New(group,menumark,active,self._MarkTask,self,group,client)
if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A then if self.Type ~= PLAYERTASKCONTROLLER.Type.A2A then
-- no smoking/flaring here if A2A -- no smoking/flaring here if A2A
local smoke = MENU_GROUP_COMMAND:New(group,menusmoke,active,self._SmokeTask,self,group,client) local smoke = MENU_GROUP_COMMAND_DELAYED:New(group,menusmoke,active,self._SmokeTask,self,group,client)
local flare = MENU_GROUP_COMMAND:New(group,menuflare,active,self._FlareTask,self,group,client) local flare = MENU_GROUP_COMMAND_DELAYED:New(group,menuflare,active,self._FlareTask,self,group,client)
end end
local abort = MENU_GROUP_COMMAND:New(group,menuabort,active,self._AbortTask,self,group,client) local abort = MENU_GROUP_COMMAND_DELAYED:New(group,menuabort,active,self._AbortTask,self,group,client)
elseif (self.TaskQueue:Count() > 0 and enforced) or (not playerhastask) then elseif (self.TaskQueue:Count() > 0 and enforced) or (not playerhastask) then
--- ---
-- JOIN TASK MENU -- JOIN TASK MENU
@ -2449,14 +2450,14 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
local taskpertype = self:_GetTasksPerType() local taskpertype = self:_GetTasksPerType()
local menujoin = self.gettext:GetEntry("MENUJOIN",self.locale) local menujoin = self.gettext:GetEntry("MENUJOIN",self.locale)
local menutaskinfo = self.gettext:GetEntry("MENUTASKINFO",self.locale) local menutaskinfo = self.gettext:GetEntry("MENUTASKINFO",self.locale)
local joinmenu = MENU_GROUP:New(group,menujoin,topmenu) local joinmenu = MENU_GROUP_DELAYED:New(group,menujoin,topmenu)
local ttypes = {} local ttypes = {}
local taskmenu = {} local taskmenu = {}
local ittypes = {} local ittypes = {}
local itaskmenu = {} local itaskmenu = {}
for _tasktype,_data in pairs(tasktypes) do for _tasktype,_data in pairs(tasktypes) do
ttypes[_tasktype] = MENU_GROUP:New(group,_tasktype,joinmenu) ttypes[_tasktype] = MENU_GROUP_DELAYED:New(group,_tasktype,joinmenu)
local tasks = taskpertype[_tasktype] or {} local tasks = taskpertype[_tasktype] or {}
for _,_task in pairs(tasks) do for _,_task in pairs(tasks) do
_task = _task -- Ops.PlayerTask#PLAYERTASK _task = _task -- Ops.PlayerTask#PLAYERTASK
@ -2476,17 +2477,18 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
end end
end end
--if _task:GetState() == "Planned" or (not _task:HasPlayerName(playername)) then --if _task:GetState() == "Planned" or (not _task:HasPlayerName(playername)) then
local taskentry = MENU_GROUP_COMMAND:New(group,text,ttypes[_tasktype],self._JoinTask,self,group,client,_task) local taskentry = MENU_GROUP_COMMAND_DELAYED:New(group,text,ttypes[_tasktype],self._JoinTask,self,group,client,_task)
taskentry:SetTag(playername) taskentry:SetTag(playername)
taskmenu[#taskmenu+1] = taskentry taskmenu[#taskmenu+1] = taskentry
--end --end
end end
end end
--joinmenu:Set()
if self.taskinfomenu then if self.taskinfomenu then
local taskinfomenu = MENU_GROUP:New(group,menutaskinfo,topmenu) local taskinfomenu = MENU_GROUP_DELAYED:New(group,menutaskinfo,topmenu)
for _tasktype,_data in pairs(tasktypes) do for _tasktype,_data in pairs(tasktypes) do
ittypes[_tasktype] = MENU_GROUP:New(group,_tasktype,taskinfomenu) ittypes[_tasktype] = MENU_GROUP_DELAYED:New(group,_tasktype,taskinfomenu)
local tasks = taskpertype[_tasktype] or {} local tasks = taskpertype[_tasktype] or {}
for _,_task in pairs(tasks) do for _,_task in pairs(tasks) do
_task = _task -- Ops.PlayerTask#PLAYERTASK _task = _task -- Ops.PlayerTask#PLAYERTASK
@ -2506,22 +2508,23 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
end end
end end
--if _task:GetState() == "Planned" or (not _task:HasPlayerName(playername)) then --if _task:GetState() == "Planned" or (not _task:HasPlayerName(playername)) then
local taskentry = MENU_GROUP_COMMAND:New(group,text,ittypes[_tasktype],self._ActiveTaskInfo,self,group,client,_task) local taskentry = MENU_GROUP_COMMAND_DELAYED:New(group,text,ittypes[_tasktype],self._ActiveTaskInfo,self,group,client,_task)
taskentry:SetTag(playername) taskentry:SetTag(playername)
itaskmenu[#itaskmenu+1] = taskentry itaskmenu[#itaskmenu+1] = taskentry
--end --end
end end
end end
--taskinfomenu:Set()
end end
elseif self.TaskQueue:Count() == 0 then elseif self.TaskQueue:Count() == 0 then
-- no tasks (yet) -- no tasks (yet)
local menunotasks = self.gettext:GetEntry("MENUNOTASKS",self.locale) local menunotasks = self.gettext:GetEntry("MENUNOTASKS",self.locale)
local joinmenu = MENU_GROUP:New(group,menunotasks,topmenu) local joinmenu = MENU_GROUP_DELAYED:New(group,menunotasks,topmenu)
end end
--- ---
-- REFRESH MENU -- REFRESH MENU
--- ---
self.PlayerMenu[playername]:Refresh() self.PlayerMenu[playername]:Set()
end end
end end
end end