Improved mission handling on cancel, done and repeat.
This commit is contained in:
Frank
2020-03-11 19:35:42 +01:00
parent fa9adaf046
commit 04fb7f7684
4 changed files with 138 additions and 48 deletions
+47 -1
View File
@@ -88,7 +88,7 @@ AIRWING = {
--- AIRWING class version.
-- @field #string version
AIRWING.version="0.1.4"
AIRWING.version="0.1.5"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- ToDo list
@@ -349,6 +349,30 @@ function AIRWING:GetSquadron(SquadronName)
return self.squadrons[SquadronName]
end
--- Get squadron of an asset.
-- @param #AIRWING self
-- @param #AIRWING.SquadronAsset Asset
-- @return #AIRWING.Squadron Squadron table.
function AIRWING:GetSquadronOfAsset(Asset)
return self:GetSquadron(Asset.assignment)
end
--- Remove asset from squadron.
-- @param #AIRWING self
-- @param #AIRWING.SquadronAsset Asset
-- @return #AIRWING.Squadron Squadron table.
function AIRWING:RemoveAssetFromSquadron(Asset)
local squad=self:GetSquadronOfAsset(Asset)
if squad then
for i,_asset in pairs(squad.assets) do
local asset=_asset --#AIRWING.SquadronAsset
if asset.uid==Asset.uid then
table.remove(squad.assets, i)
return
end
end
end
end
--- Add mission to queue.
-- @param #AIRWING self
@@ -1313,6 +1337,28 @@ function AIRWING:GetMissionByID(mid)
return nil
end
--- Returns the mission for a given request ID.
-- @param #AIRWING self
-- @param #number RequestID Unique ID of the request.
-- @return Ops.Auftrag#AUFTRAG Mission table or *nil*.
function AIRWING:GetMissionFromRequestID(RequestID)
for _,_mission in pairs(self.missionqueue) do
local mission=_mission --Ops.Auftrag#AUFTRAG
if mission.requestID and mission.requestID==RequestID then
return mission
end
end
return nil
end
--- Returns the mission for a given request.
-- @param #AIRWING self
-- @param Functional.Warehouse#WAREHOUSE.Queueitem Request The warehouse request.
-- @return Ops.Auftrag#AUFTRAG Mission table or *nil*.
function AIRWING:GetMissionFromRequest(Request)
return self:GetMissionFromRequestID(Request.uid)
end
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Menu Functions