mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2026-08-27 07:15:24 +00:00
RAT
This commit is contained in:
@@ -1157,6 +1157,20 @@ function BASE:_Serialize(Arguments)
|
|||||||
return text
|
return text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- (Internal) Serialize arguments
|
||||||
|
-- @param #BASE self
|
||||||
|
-- @param #table Arguments
|
||||||
|
-- @return #string Text
|
||||||
|
function BASE:_Serialize(Arguments)
|
||||||
|
local text=UTILS.BasicSerialize(Arguments)
|
||||||
|
-- local text = UTILS.PrintTableToLog({Arguments}, 0, true)
|
||||||
|
-- text = string.gsub(text,"\n","")
|
||||||
|
-- text = string.gsub(text,"%(%(","%(")
|
||||||
|
-- text = string.gsub(text,"%)%)","%)")
|
||||||
|
-- text = string.gsub(text,"(%s+)","")
|
||||||
|
return text
|
||||||
|
end
|
||||||
|
|
||||||
--- Trace a function call. This function is private.
|
--- Trace a function call. This function is private.
|
||||||
-- @param #BASE self
|
-- @param #BASE self
|
||||||
-- @param Arguments A #table or any field.
|
-- @param Arguments A #table or any field.
|
||||||
|
|||||||
@@ -2121,7 +2121,7 @@ end
|
|||||||
-- @param #number _nrespawn Number of already performed respawn attempts (e.g. spawning on runway bug).
|
-- @param #number _nrespawn Number of already performed respawn attempts (e.g. spawning on runway bug).
|
||||||
-- @param #table parkingdata Explicitly specify the parking spots when spawning at an airport.
|
-- @param #table parkingdata Explicitly specify the parking spots when spawning at an airport.
|
||||||
-- @return #number Spawn index.
|
-- @return #number Spawn index.
|
||||||
function RAT:_SpawnWithRoute(_departure, _destination, _takeoff, _landing, _livery, _waypoint, _lastpos, _nrespawn, parkingdata)
|
function RAT:_SpawnWithRoute(_departure, _destination, _takeoff, _landing, _livery, _waypoint, _lastpos, _nrespawn, parkingdata, index)
|
||||||
self:F({rat=RAT.id, departure=_departure, destination=_destination, takeoff=_takeoff, landing=_landing, livery=_livery, waypoint=_waypoint, lastpos=_lastpos, nrespawn=_nrespawn})
|
self:F({rat=RAT.id, departure=_departure, destination=_destination, takeoff=_takeoff, landing=_landing, livery=_livery, waypoint=_waypoint, lastpos=_lastpos, nrespawn=_nrespawn})
|
||||||
|
|
||||||
-- Set takeoff type.
|
-- Set takeoff type.
|
||||||
@@ -2313,8 +2313,13 @@ end
|
|||||||
-- @param #number delay Delay before respawn
|
-- @param #number delay Delay before respawn
|
||||||
function RAT:_Respawn(index, lastpos, delay)
|
function RAT:_Respawn(index, lastpos, delay)
|
||||||
|
|
||||||
-- Get the spawn index from group
|
if delay and delay>0 then
|
||||||
--local index=self:GetSpawnIndexFromGroup(group)
|
|
||||||
|
self:ScheduleOnce(delay, RAT._Respawn, self, index, lastpos, 0)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
local ratcraft=self.ratcraft[index] --#RAT.RatCraft
|
||||||
|
|
||||||
-- Get departure and destination from previous journey.
|
-- Get departure and destination from previous journey.
|
||||||
local departure=self.ratcraft[index].departure
|
local departure=self.ratcraft[index].departure
|
||||||
@@ -2323,7 +2328,26 @@ function RAT:_Respawn(index, lastpos, delay)
|
|||||||
local landing=self.ratcraft[index].landing
|
local landing=self.ratcraft[index].landing
|
||||||
local livery=self.ratcraft[index].livery
|
local livery=self.ratcraft[index].livery
|
||||||
local lastwp=self.ratcraft[index].waypoints[#self.ratcraft[index].waypoints]
|
local lastwp=self.ratcraft[index].waypoints[#self.ratcraft[index].waypoints]
|
||||||
--local lastpos=group:GetCoordinate()
|
|
||||||
|
local flightgroup=ratcraft.flightgroup
|
||||||
|
local parkingdata=nil
|
||||||
|
env.info("Respawning ratcraft")
|
||||||
|
for _,_element in pairs(flightgroup.elements) do
|
||||||
|
local element=_element --Ops.OpsGroup#OPSGROUP.Element
|
||||||
|
|
||||||
|
env.info(string.format("element %s", element.name))
|
||||||
|
|
||||||
|
|
||||||
|
if element.parking then
|
||||||
|
if parkingdata==nil then
|
||||||
|
parkingdata={}
|
||||||
|
end
|
||||||
|
env.info(string.format("element %s at spot id=%d", element.name, element.parking.TerminalID))
|
||||||
|
table.insert(parkingdata, element.parking)
|
||||||
|
else
|
||||||
|
env.info(string.format("element %s not SPOT", element.name))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local _departure=nil
|
local _departure=nil
|
||||||
local _destination=nil
|
local _destination=nil
|
||||||
@@ -2482,16 +2506,19 @@ function RAT:_Respawn(index, lastpos, delay)
|
|||||||
arg.livery=_livery
|
arg.livery=_livery
|
||||||
arg.lastwp=_lastwp
|
arg.lastwp=_lastwp
|
||||||
arg.lastpos=_lastpos
|
arg.lastpos=_lastpos
|
||||||
|
arg.parkingdata=parkingdata
|
||||||
self:T(RAT.id..string.format("%s delayed respawn in %.1f seconds.", self.alias, respawndelay))
|
self:T(RAT.id..string.format("%s delayed respawn in %.1f seconds.", self.alias, respawndelay))
|
||||||
SCHEDULER:New(nil, self._SpawnWithRouteTimer, {arg}, respawndelay)
|
SCHEDULER:New(nil, self._SpawnWithRouteTimer, {arg}, respawndelay)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Delayed spawn function called by scheduler.
|
--- Delayed spawn function called by scheduler.
|
||||||
-- @param #RAT self
|
-- @param #RAT self
|
||||||
-- @param #table arg Parameters: arg.self, arg.departure, arg.destination, arg.takeoff, arg.landing, arg.livery, arg.lastwp, arg.lastpos
|
-- @param #table arg Parameters: arg.self, arg.departure, arg.destination, arg.takeoff, arg.landing, arg.livery, arg.lastwp, arg.lastpos, arg.parkingdata
|
||||||
function RAT._SpawnWithRouteTimer(arg)
|
function RAT._SpawnWithRouteTimer(arg)
|
||||||
RAT._SpawnWithRoute(arg.self, arg.departure, arg.destination, arg.takeoff, arg.landing, arg.livery, arg.lastwp, arg.lastpos)
|
RAT._SpawnWithRoute(arg.self, arg.departure, arg.destination, arg.takeoff, arg.landing, arg.livery, arg.lastwp, arg.lastpos, nil, arg.parkingdata)
|
||||||
end
|
end
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
@@ -4093,7 +4120,7 @@ function RAT:_OnEngineShutdown(EventData)
|
|||||||
-- Respawn group.
|
-- Respawn group.
|
||||||
local idx=self:GetSpawnIndexFromGroup(SpawnGroup)
|
local idx=self:GetSpawnIndexFromGroup(SpawnGroup)
|
||||||
local coord=SpawnGroup:GetCoordinate()
|
local coord=SpawnGroup:GetCoordinate()
|
||||||
self:_Respawn(idx, coord)
|
self:_Respawn(idx, coord, 3)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Despawn group.
|
-- Despawn group.
|
||||||
|
|||||||
Reference in New Issue
Block a user