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 for _,_cargotransport in pairs(self.cargoqueue) do
local cargotransport=_cargotransport --#OPSGROUP.CargoTransport 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 cargotransport.status=OPSGROUP.TransportStatus.EXECUTING
return cargotransport return cargotransport
end end
@@ -4859,6 +4859,8 @@ function OPSGROUP:_CheckDelivered(CargoTransport)
for _,_cargo in pairs(CargoTransport.cargos) do for _,_cargo in pairs(CargoTransport.cargos) do
local cargo=_cargo --Ops.OpsGroup#OPSGROUP.CargoGroup local cargo=_cargo --Ops.OpsGroup#OPSGROUP.CargoGroup
if self:CanCargo(cargo.opsgroup) then
if cargo.delivered then if cargo.delivered then
-- This one is delivered. -- This one is delivered.
elseif cargo.opsgroup==nil or cargo.opsgroup:IsDead() or cargo.opsgroup:IsStopped() then elseif cargo.opsgroup==nil or cargo.opsgroup:IsDead() or cargo.opsgroup:IsStopped() then
@@ -4869,6 +4871,8 @@ function OPSGROUP:_CheckDelivered(CargoTransport)
end end
end
-- Debug info. -- Debug info.
self:T(self.lid..string.format("Cargotransport UID=%d Status=%s: delivered=%s", CargoTransport.uid, CargoTransport.status, tostring(done))) 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. -- @return #boolean If `true`, there is an element of the group that can load the whole cargo group.
function OPSGROUP:CanCargo(CargoGroup) function OPSGROUP:CanCargo(CargoGroup)
if CargoGroup then
local weight=CargoGroup:GetWeightTotal() local weight=CargoGroup:GetWeightTotal()
for _,element in pairs(self.elements) do for _,element in pairs(self.elements) do
@@ -5177,6 +5183,8 @@ function OPSGROUP:CanCargo(CargoGroup)
end end
end end
end
return false return false
end end
@@ -5358,7 +5366,7 @@ function OPSGROUP:onafterLoading(From, Event, To)
for _,_cargo in pairs(self.cargoTransport.cargos) do for _,_cargo in pairs(self.cargoTransport.cargos) do
local cargo=_cargo --#OPSGROUP.CargoGroup 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. -- Check that group is not cargo already and not busy.
-- TODO: Need a better :IsBusy() function or :IsReadyForMission() :IsReadyForBoarding() :IsReadyForTransport() -- TODO: Need a better :IsBusy() function or :IsReadyForMission() :IsReadyForBoarding() :IsReadyForTransport()