mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
*options
This commit is contained in:
parent
439f858a82
commit
4dbfef028e
@ -684,10 +684,10 @@ do
|
|||||||
-------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
-- PLAYERTASKCONTROLLER
|
-- PLAYERTASKCONTROLLER
|
||||||
-- TODO: PLAYERTASKCONTROLLER
|
-- TODO: PLAYERTASKCONTROLLER
|
||||||
-- DONE Playername from after #
|
-- DONE Playername customized
|
||||||
-- DONE Coalition-level screen info to SET based
|
-- DONE Coalition-level screen info to SET based
|
||||||
-- DONE Flash directions
|
-- DONE Flash directions
|
||||||
-- TODO less rebuilds menu, Task info menu available after join
|
-- DONE less rebuilds menu, Task info menu available after join
|
||||||
-- DONE Limit menu entries
|
-- DONE Limit menu entries
|
||||||
-------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -727,6 +727,9 @@ do
|
|||||||
-- @field #number menuitemlimit
|
-- @field #number menuitemlimit
|
||||||
-- @field #boolean activehasinfomenu
|
-- @field #boolean activehasinfomenu
|
||||||
-- @field #number holdmenutime
|
-- @field #number holdmenutime
|
||||||
|
-- @field #table customcallsigns
|
||||||
|
-- @field #boolean ShortCallsign
|
||||||
|
-- @field #boolean Keepnumber
|
||||||
-- @extends Core.Fsm#FSM
|
-- @extends Core.Fsm#FSM
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1021,6 +1024,9 @@ PLAYERTASKCONTROLLER = {
|
|||||||
taskinfomenu = false,
|
taskinfomenu = false,
|
||||||
activehasinfomenu = false,
|
activehasinfomenu = false,
|
||||||
MarkerReadOnly = false,
|
MarkerReadOnly = false,
|
||||||
|
customcallsigns = {},
|
||||||
|
ShortCallsign = true,
|
||||||
|
Keepnumber = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1179,7 +1185,7 @@ PLAYERTASKCONTROLLER.Messages = {
|
|||||||
|
|
||||||
--- PLAYERTASK class version.
|
--- PLAYERTASK class version.
|
||||||
-- @field #string version
|
-- @field #string version
|
||||||
PLAYERTASKCONTROLLER.version="0.1.32"
|
PLAYERTASKCONTROLLER.version="0.1.33"
|
||||||
|
|
||||||
--- Constructor
|
--- Constructor
|
||||||
-- @param #PLAYERTASKCONTROLLER self
|
-- @param #PLAYERTASKCONTROLLER self
|
||||||
@ -1228,6 +1234,10 @@ function PLAYERTASKCONTROLLER:New(Name, Coalition, Type, ClientFilter)
|
|||||||
self.repeatonfailed = true
|
self.repeatonfailed = true
|
||||||
self.repeattimes = 5
|
self.repeattimes = 5
|
||||||
self.UseGroupNames = true
|
self.UseGroupNames = true
|
||||||
|
|
||||||
|
self.customcallsigns = {}
|
||||||
|
self.ShortCallsign = true
|
||||||
|
self.Keepnumber = false
|
||||||
|
|
||||||
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()
|
||||||
@ -1349,6 +1359,22 @@ function PLAYERTASKCONTROLLER:SetAllowFlashDirection(OnOff)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- [User] Set callsign options for TTS output. See @{Wrapper.Group#GROUP.GetCustomCallSign}() on how to set customized callsigns.
|
||||||
|
-- @param #PLAYERTASKCONTROLLER self
|
||||||
|
-- @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.
|
||||||
|
-- @return #PLAYERTASKCONTROLLER self
|
||||||
|
function PLAYERTASKCONTROLLER:SetCallSignOptions(ShortCallsign,Keepnumber)
|
||||||
|
if not ShortCallsign or ShortCallsign == false then
|
||||||
|
self.ShortCallsign = false
|
||||||
|
else
|
||||||
|
self.ShortCallsign = true
|
||||||
|
end
|
||||||
|
self.Keepnumber = Keepnumber or false
|
||||||
|
return self
|
||||||
|
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)
|
||||||
@ -1470,16 +1496,13 @@ end
|
|||||||
function PLAYERTASKCONTROLLER:_GetPlayerName(Client)
|
function PLAYERTASKCONTROLLER:_GetPlayerName(Client)
|
||||||
self:T(self.lid.."DisablePrecisionBombing")
|
self:T(self.lid.."DisablePrecisionBombing")
|
||||||
local playername = Client:GetPlayerName()
|
local playername = Client:GetPlayerName()
|
||||||
local ttsplayername = playername
|
local ttsplayername = nil
|
||||||
if string.find(playername,"|") then
|
if not self.customcallsigns[playername] then
|
||||||
-- personalized flight name in player naming
|
local playergroup = Client:GetGroup()
|
||||||
ttsplayername = string.match(playername,"| ([%a]+)")
|
ttsplayername = playergroup:GetCustomCallSign(self.ShortCallsign,self.Keepnumber)
|
||||||
end
|
self.customcallsigns[playername] = ttsplayername
|
||||||
local group = Client:GetGroup()
|
else
|
||||||
local groupname = group:GetName()
|
ttsplayername = self.customcallsigns[playername]
|
||||||
if string.find(groupname,"#") then
|
|
||||||
-- personalized flight name in player naming
|
|
||||||
ttsplayername = string.match(groupname,"#([%a]+)")
|
|
||||||
end
|
end
|
||||||
return playername, ttsplayername
|
return playername, ttsplayername
|
||||||
end
|
end
|
||||||
@ -1593,10 +1616,13 @@ function PLAYERTASKCONTROLLER:_EventHandler(EventData)
|
|||||||
modulation = UTILS.GetModulationName(modulation)
|
modulation = UTILS.GetModulationName(modulation)
|
||||||
local switchtext = self.gettext:GetEntry("BROADCAST",self.locale)
|
local switchtext = self.gettext:GetEntry("BROADCAST",self.locale)
|
||||||
|
|
||||||
local playername = EventData.IniPlayerName
|
local playername = EventData.IniPlayerName
|
||||||
if string.find(playername,"|") then
|
if EventData.IniGroup then
|
||||||
-- personalized flight name in player naming
|
-- personalized flight name in player naming
|
||||||
playername = string.match(playername,"| ([%a]+)")
|
if self.customcallsigns[playername] then
|
||||||
|
self.customcallsigns[playername] = nil
|
||||||
|
end
|
||||||
|
playername = EventData.IniGroup:GetCustomCallSign(self.ShortCallsign,self.Keepnumber)
|
||||||
end
|
end
|
||||||
--local text = string.format("%s, %s, switch to %s for task assignment!",EventData.IniPlayerName,self.MenuName or self.Name,freqtext)
|
--local text = string.format("%s, %s, switch to %s for task assignment!",EventData.IniPlayerName,self.MenuName or self.Name,freqtext)
|
||||||
local text = string.format(switchtext,self.MenuName or self.Name,playername,freqtext)
|
local text = string.format(switchtext,self.MenuName or self.Name,playername,freqtext)
|
||||||
@ -1606,11 +1632,6 @@ function PLAYERTASKCONTROLLER:_EventHandler(EventData)
|
|||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
function PLAYERTASKCONTROLLER:_DummyMenu(group)
|
|
||||||
self:T(self.lid.."_DummyMenu")
|
|
||||||
return self
|
|
||||||
end
|
|
||||||
|
|
||||||
--- [User] Set locale for localization. Defaults to "en"
|
--- [User] Set locale for localization. Defaults to "en"
|
||||||
-- @param #PLAYERTASKCONTROLLER self
|
-- @param #PLAYERTASKCONTROLLER self
|
||||||
-- @param #string Locale The locale to use
|
-- @param #string Locale The locale to use
|
||||||
@ -1862,8 +1883,12 @@ function PLAYERTASKCONTROLLER:_CheckPrecisionTasks()
|
|||||||
local text = ""
|
local text = ""
|
||||||
for _,playername in pairs(clients) do
|
for _,playername in pairs(clients) do
|
||||||
local pointertext = self.gettext:GetEntry("POINTEROVERTARGET",self.locale)
|
local pointertext = self.gettext:GetEntry("POINTEROVERTARGET",self.locale)
|
||||||
|
local ttsplayername = playername
|
||||||
|
if self.customcallsigns[playername] then
|
||||||
|
ttsplayername = self.customcallsigns[playername]
|
||||||
|
end
|
||||||
--text = string.format("%s, %s, pointer over target for task %03d, lasing!", playername, self.MenuName or self.Name, task.PlayerTaskNr)
|
--text = string.format("%s, %s, pointer over target for task %03d, lasing!", playername, self.MenuName or self.Name, task.PlayerTaskNr)
|
||||||
text = string.format(pointertext, playername, self.MenuName or self.Name, task.PlayerTaskNr)
|
text = string.format(pointertext, ttsplayername, self.MenuName or self.Name, task.PlayerTaskNr)
|
||||||
if not self.NoScreenOutput then
|
if not self.NoScreenOutput then
|
||||||
local client = nil
|
local client = nil
|
||||||
self.ClientSet:ForEachClient(
|
self.ClientSet:ForEachClient(
|
||||||
@ -2344,9 +2369,10 @@ function PLAYERTASKCONTROLLER:_ActiveTaskInfo(Group, Client, Task)
|
|||||||
local clienttxt = self.gettext:GetEntry("PILOTS",self.locale)
|
local clienttxt = self.gettext:GetEntry("PILOTS",self.locale)
|
||||||
if clientcount > 0 then
|
if clientcount > 0 then
|
||||||
for _,_name in pairs(clientlist) do
|
for _,_name in pairs(clientlist) do
|
||||||
if string.find(_name,"|") then
|
if self.customcallsigns[_name] then
|
||||||
-- personalized flight name in player naming
|
-- personalized flight name in player naming
|
||||||
_name = string.match(_name,"| ([%a]+)")
|
--_name = string.match(_name,"| ([%a]+)")
|
||||||
|
_name = self.customcallsigns[_name]
|
||||||
end
|
end
|
||||||
clienttxt = clienttxt .. _name .. ", "
|
clienttxt = clienttxt .. _name .. ", "
|
||||||
end
|
end
|
||||||
@ -2581,7 +2607,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
|
|||||||
if self:_CheckPlayerHasTask(playername) then playerhastask = true end
|
if self:_CheckPlayerHasTask(playername) then playerhastask = true end
|
||||||
local topmenu = nil
|
local topmenu = nil
|
||||||
|
|
||||||
self:I("Playerhastask = "..tostring(playerhastask).." Enforced = "..tostring(enforced).." Join or Abort = "..tostring(joinorabort))
|
self:T("Playerhastask = "..tostring(playerhastask).." Enforced = "..tostring(enforced).." Join or Abort = "..tostring(joinorabort))
|
||||||
|
|
||||||
-- Cases to rebuild menu
|
-- Cases to rebuild menu
|
||||||
-- 1) new player
|
-- 1) new player
|
||||||
@ -2599,7 +2625,7 @@ function PLAYERTASKCONTROLLER:_BuildMenus(Client,enforced)
|
|||||||
-- 4) last build > 30 secs?
|
-- 4) last build > 30 secs?
|
||||||
local T0 = timer.getAbsTime()
|
local T0 = timer.getAbsTime()
|
||||||
local TDiff = T0-self.PlayerMenu[playername].MenuTag
|
local TDiff = T0-self.PlayerMenu[playername].MenuTag
|
||||||
self:I("TDiff = "..TDiff)
|
self:T("TDiff = "..TDiff)
|
||||||
if TDiff >= self.holdmenutime then
|
if TDiff >= self.holdmenutime then
|
||||||
self.PlayerMenu[playername]:RemoveSubMenus()
|
self.PlayerMenu[playername]:RemoveSubMenus()
|
||||||
self.PlayerMenu[playername]:SetTag(timer.getAbsTime())
|
self.PlayerMenu[playername]:SetTag(timer.getAbsTime())
|
||||||
@ -2965,7 +2991,7 @@ end
|
|||||||
-- @param #string To
|
-- @param #string To
|
||||||
-- @return #PLAYERTASKCONTROLLER self
|
-- @return #PLAYERTASKCONTROLLER self
|
||||||
function PLAYERTASKCONTROLLER:onafterStatus(From, Event, To)
|
function PLAYERTASKCONTROLLER:onafterStatus(From, Event, To)
|
||||||
self:I({From, Event, To})
|
self:T({From, Event, To})
|
||||||
|
|
||||||
self:_CheckTargetQueue()
|
self:_CheckTargetQueue()
|
||||||
self:_CheckTaskQueue()
|
self:_CheckTaskQueue()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user