This commit is contained in:
Frank 2021-06-22 12:18:25 +02:00
parent 6290db035d
commit 231c5bfea7
5 changed files with 77 additions and 3 deletions

View File

@ -1400,6 +1400,22 @@ do -- SET_GROUP
return self
end
--- Activate late activated groups.
-- @param #SET_GROUP self
-- @param #number Delay Delay in seconds.
-- @return #SET_GROUP self
function SET_GROUP:Activate(Delay)
local Set = self:GetSet()
for GroupID, GroupData in pairs(Set) do -- For each GROUP in SET_GROUP
local group=GroupData --Wrapper.Group#GROUP
if group and group:IsAlive()==false then
group:Activate(Delay)
end
end
return self
end
--- Iterate the SET_GROUP and call an iterator function for each **alive** GROUP presence completely in a @{Zone}, providing the GROUP and optional parameters to the called function.
-- @param #SET_GROUP self
-- @param Core.Zone#ZONE ZoneObject The Zone to be tested for.
@ -6412,6 +6428,21 @@ do -- SET_OPSGROUP
return self
end
--- Activate late activated groups in the set.
-- @param #SET_OPSGROUP self
-- @param #number Delay Delay in seconds.
-- @return #SET_OPSGROUP self
function SET_OPSGROUP:Activate(Delay)
local Set = self:GetSet()
for GroupID, GroupData in pairs(Set) do
local group=GroupData --Ops.OpsGroup#OPSGROUP
if group and group:IsAlive()==false then
group:Activate(Delay)
end
end
return self
end
--- Handles the OnDead or OnCrash event for alive groups set.
-- Note: The GROUP object in the SET_OPSGROUP collection will only be removed if the last unit is destroyed of the GROUP.
-- @param #SET_OPSGROUP self

View File

@ -417,6 +417,9 @@ end
-- @param Wrapper.Airbase#AIRBASE HomeAirbase The home airbase.
-- @return #FLIGHTGROUP self
function FLIGHTGROUP:SetHomebase(HomeAirbase)
if type(HomeAirbase)=="string" then
HomeAirbase=AIRBASE:FindByName(HomeAirbase)
end
self.homebase=HomeAirbase
return self
end
@ -426,6 +429,9 @@ end
-- @param Wrapper.Airbase#AIRBASE DestinationAirbase The destination airbase.
-- @return #FLIGHTGROUP self
function FLIGHTGROUP:SetDestinationbase(DestinationAirbase)
if type(DestinationAirbase)=="string" then
DestinationAirbase=AIRBASE:FindByName(DestinationAirbase)
end
self.destbase=DestinationAirbase
return self
end
@ -730,7 +736,7 @@ function FLIGHTGROUP:StartUncontrolled(delay)
end
self:I(self.lid.."Starting uncontrolled group")
self.group:StartUncontrolled(_delay)
self.isUncontrolled=true
self.isUncontrolled=false
else
self:E(self.lid.."ERROR: Could not start uncontrolled group as it is NOT alive!")
end

View File

@ -1005,7 +1005,7 @@ function NAVYGROUP:onafterDive(From, Event, To, Depth, Speed)
Depth=Depth or 50
self:T(self.lid..string.format("Diving to %d meters", Depth))
self:I(self.lid..string.format("Diving to %d meters", Depth))
self.depth=Depth

View File

@ -5448,6 +5448,8 @@ function OPSGROUP:onafterPickup(From, Event, To)
-- Add waypoint.
if self.isFlightgroup then
env.info("FF pickup is flightgroup")
if airbasePickup then
---
@ -5461,11 +5463,14 @@ function OPSGROUP:onafterPickup(From, Event, To)
-- Activate uncontrolled group.
if self:IsParking() then
env.info("FF pickup start uncontrolled while parking at current airbase")
self:StartUncontrolled()
end
else
env.info("FF pickup land at airbase")
-- Order group to land at an airbase.
self:LandAtAirbase(airbasePickup)
@ -5477,6 +5482,14 @@ function OPSGROUP:onafterPickup(From, Event, To)
-- Helo can also land in a zone (NOTE: currently VTOL cannot!)
---
env.info("FF pickup helo addwaypoint")
-- Activate uncontrolled group.
if self:IsParking() then
env.info("FF pickup start uncontrolled while parking airbase")
self:StartUncontrolled()
end
-- If this is a helo and no ZONE_AIRBASE was given, we make the helo land in the pickup zone.
Coordinate:SetAltitude(200)
local waypoint=FLIGHTGROUP.AddWaypoint(self, Coordinate)
@ -5485,6 +5498,7 @@ function OPSGROUP:onafterPickup(From, Event, To)
else
self:E(self.lid.."ERROR: Carrier aircraft cannot land in Pickup zone! Specify a ZONE_AIRBASE as pickup zone")
end
elseif self.isNavygroup then
-- Navy Group
@ -5656,9 +5670,12 @@ function OPSGROUP:onafterLoad(From, Event, To, CargoGroup, Carrier)
CargoGroup:Despawn(0, true)
end
-- Trigger embarked event.
-- Trigger embarked event for cargo group.
CargoGroup:Embarked(self, Carrier)
-- Trigger "Loaded" event for current cargo transport.
self.cargoTransport:Loaded(CargoGroup, Carrier)
else
self:E(self.lid.."ERROR: Cargo has no carrier on Load event!")
end

View File

@ -415,6 +415,15 @@ function OPSTRANSPORT:SetPriority(Prio, Importance, Urgent)
return self
end
--- Set verbosity.
-- @param #OPSTRANSPORT self
-- @param #number Verbosity Be more verbose. Default 0
-- @return #OPSTRANSPORT self
function OPSTRANSPORT:SetVerbosity(Verbosity)
self.verbose=Verbosity or 0
return self
end
--- Add start condition.
-- @param #OPSTRANSPORT self
-- @param #function ConditionFunction Function that needs to be true before the transport can be started. Must return a #boolean.
@ -674,6 +683,17 @@ function OPSTRANSPORT:onafterDelivered(From, Event, To)
end
--- On after "Loaded" event.
-- @param #OPSTRANSPORT self
-- @param #string From From state.
-- @param #string Event Event.
-- @param #string To To state.
-- @param Ops.OpsGroup#OPSGROUP OpsGroup OPSGROUP that was loaded into a carrier.
-- @param Ops.OpsGroup#OPSGROUP.Element Carrier Carrier element.
function OPSTRANSPORT:onafterLoaded(From, Event, To, OpsGroup, Carrier)
self:I(self.lid..string.format("Loaded OPSGROUP %s into carrier %s", OpsGroup:GetName(), tostring(Carrier.name)))
end
--- On after "Unloaded" event.
-- @param #OPSTRANSPORT self
-- @param #string From From state.