Update OpsGroup.lua

This commit is contained in:
Frank
2021-02-16 00:15:22 +01:00
parent 5990ab1cc9
commit dcf1a56756
+10 -2
View File
@@ -4839,7 +4839,7 @@ function OPSGROUP:_GetNextCargoTransport()
for _,_cargotransport in pairs(self.cargoqueue) do
local cargotransport=_cargotransport --#OPSGROUP.CargoTransport
if Time>=cargotransport.Tstart and cargotransport.status==OPSGROUP.TransportStatus.SCHEDULED and (cargotransport.importance==nil or cargotransport.importance<=vip) and not self:_CheckDelivered(cargotransport) then
if Time>=cargotransport.Tstart and cargotransport.status~=OPSGROUP.TransportStatus.DELIVERED and (cargotransport.importance==nil or cargotransport.importance<=vip) and not self:_CheckDelivered(cargotransport) then
cargotransport.status=OPSGROUP.TransportStatus.EXECUTING
return cargotransport
end
@@ -4859,6 +4859,8 @@ function OPSGROUP:_CheckDelivered(CargoTransport)
for _,_cargo in pairs(CargoTransport.cargos) do
local cargo=_cargo --Ops.OpsGroup#OPSGROUP.CargoGroup
if self:CanCargo(cargo.opsgroup) then
if cargo.delivered then
-- This one is delivered.
elseif cargo.opsgroup==nil or cargo.opsgroup:IsDead() or cargo.opsgroup:IsStopped() then
@@ -4869,6 +4871,8 @@ function OPSGROUP:_CheckDelivered(CargoTransport)
end
end
-- Debug info.
self:T(self.lid..string.format("Cargotransport UID=%d Status=%s: delivered=%s", CargoTransport.uid, CargoTransport.status, tostring(done)))
@@ -5168,6 +5172,8 @@ end
-- @return #boolean If `true`, there is an element of the group that can load the whole cargo group.
function OPSGROUP:CanCargo(CargoGroup)
if CargoGroup then
local weight=CargoGroup:GetWeightTotal()
for _,element in pairs(self.elements) do
@@ -5177,6 +5183,8 @@ function OPSGROUP:CanCargo(CargoGroup)
end
end
end
return false
end
@@ -5358,7 +5366,7 @@ function OPSGROUP:onafterLoading(From, Event, To)
for _,_cargo in pairs(self.cargoTransport.cargos) do
local cargo=_cargo --#OPSGROUP.CargoGroup
if not cargo.delivered then
if self:CanCargo(cargo.opsgroup) and not cargo.delivered then
-- Check that group is not cargo already and not busy.
-- TODO: Need a better :IsBusy() function or :IsReadyForMission() :IsReadyForBoarding() :IsReadyForTransport()