'Menu changes

This commit is contained in:
Applevangelist 2022-09-13 13:13:06 +02:00
parent 4dbfef028e
commit b6fb7d94c8

View File

@ -730,6 +730,10 @@ do
-- @field #table customcallsigns -- @field #table customcallsigns
-- @field #boolean ShortCallsign -- @field #boolean ShortCallsign
-- @field #boolean Keepnumber -- @field #boolean Keepnumber
-- @field #table CallsignTranslations
-- @field #table PlayerFlashMenu
-- @field #table PlayerJoinMenu
-- @field #table PlayerInfoMenu
-- @extends Core.Fsm#FSM -- @extends Core.Fsm#FSM
--- ---
@ -1027,6 +1031,10 @@ PLAYERTASKCONTROLLER = {
customcallsigns = {}, customcallsigns = {},
ShortCallsign = true, ShortCallsign = true,
Keepnumber = false, Keepnumber = false,
CallsignTranslations = nil,
PlayerFlashMenu = {},
PlayerJoinMenu = {},
PlayerInfoMenu = {},
} }
--- ---
@ -1185,7 +1193,7 @@ PLAYERTASKCONTROLLER.Messages = {
--- PLAYERTASK class version. --- PLAYERTASK class version.
-- @field #string version -- @field #string version
PLAYERTASKCONTROLLER.version="0.1.33" PLAYERTASKCONTROLLER.version="0.1.34"
--- Constructor --- Constructor
-- @param #PLAYERTASKCONTROLLER self -- @param #PLAYERTASKCONTROLLER self
@ -1238,6 +1246,7 @@ function PLAYERTASKCONTROLLER:New(Name, Coalition, Type, ClientFilter)
self.customcallsigns = {} self.customcallsigns = {}
self.ShortCallsign = true self.ShortCallsign = true
self.Keepnumber = false self.Keepnumber = false
self.CallsignTranslations = nil
if ClientFilter then if ClientFilter then
self.ClientSet = SET_CLIENT:New():FilterCoalitions(string.lower(self.CoalitionName)):FilterActive(true):FilterPrefixes(ClientFilter):FilterStart() self.ClientSet = SET_CLIENT:New():FilterCoalitions(string.lower(self.CoalitionName)):FilterActive(true):FilterPrefixes(ClientFilter):FilterStart()
@ -1363,18 +1372,20 @@ end
-- @param #PLAYERTASKCONTROLLER self -- @param #PLAYERTASKCONTROLLER self
-- @param #boolean ShortCallsign If true, only call out the major flight number -- @param #boolean ShortCallsign If true, only call out the major flight number
-- @param #boolean Keepnumber If true, keep the **customized callsign** in the #GROUP name as-is, no amendments or numbers. -- @param #boolean Keepnumber If true, keep the **customized callsign** in the #GROUP name as-is, no amendments or numbers.
-- @param #table CallsignTranslations (optional) Table to translate between DCS standard callsigns and bespoke ones. Does not apply if using customized
-- callsigns from playername or group name.
-- @return #PLAYERTASKCONTROLLER self -- @return #PLAYERTASKCONTROLLER self
function PLAYERTASKCONTROLLER:SetCallSignOptions(ShortCallsign,Keepnumber) function PLAYERTASKCONTROLLER:SetCallSignOptions(ShortCallsign,Keepnumber,CallsignTranslations)
if not ShortCallsign or ShortCallsign == false then if not ShortCallsign or ShortCallsign == false then
self.ShortCallsign = false self.ShortCallsign = false
else else
self.ShortCallsign = true self.ShortCallsign = true
end end
self.Keepnumber = Keepnumber or false self.Keepnumber = Keepnumber or false
self.CallsignTranslations = CallsignTranslations
return self return self
end end
--- [User] Set repetition options for tasks --- [User] Set repetition options for tasks
-- @param #PLAYERTASKCONTROLLER self -- @param #PLAYERTASKCONTROLLER self
-- @param #boolean OnOff Set to `true` to switch on and `false` to switch off (defaults to true) -- @param #boolean OnOff Set to `true` to switch on and `false` to switch off (defaults to true)
@ -1499,7 +1510,7 @@ function PLAYERTASKCONTROLLER:_GetPlayerName(Client)
local ttsplayername = nil local ttsplayername = nil
if not self.customcallsigns[playername] then if not self.customcallsigns[playername] then
local playergroup = Client:GetGroup() local playergroup = Client:GetGroup()
ttsplayername = playergroup:GetCustomCallSign(self.ShortCallsign,self.Keepnumber) ttsplayername = playergroup:GetCustomCallSign(self.ShortCallsign,self.Keepnumber,self.CallsignTranslations)
self.customcallsigns[playername] = ttsplayername self.customcallsigns[playername] = ttsplayername
else else
ttsplayername = self.customcallsigns[playername] ttsplayername = self.customcallsigns[playername]
@ -2532,10 +2543,19 @@ end
-- @return #PLAYERTASKCONTROLLER self -- @return #PLAYERTASKCONTROLLER self
function PLAYERTASKCONTROLLER:_BuildTaskInfoMenu(group,client,playername,topmenu,tasktypes,taskpertype) function PLAYERTASKCONTROLLER:_BuildTaskInfoMenu(group,client,playername,topmenu,tasktypes,taskpertype)
if self.taskinfomenu then if self.taskinfomenu then
local taskinfomenu = nil
if self.PlayerInfoMenu[playername] then
taskinfomenu = self.PlayerInfoMenu[playername]
taskinfomenu:RemoveSubMenus()
else
local menutaskinfo = self.gettext:GetEntry("MENUTASKINFO",self.locale) local menutaskinfo = self.gettext:GetEntry("MENUTASKINFO",self.locale)
taskinfomenu = MENU_GROUP_DELAYED:New(group,menutaskinfo,topmenu)
self.PlayerInfoMenu[playername] = taskinfomenu
end
local ittypes = {} local ittypes = {}
local itaskmenu = {} local itaskmenu = {}
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_DELAYED:New(group,_tasktype,taskinfomenu) ittypes[_tasktype] = MENU_GROUP_DELAYED:New(group,_tasktype,taskinfomenu)
local tasks = taskpertype[_tasktype] or {} local tasks = taskpertype[_tasktype] or {}