Update Warehouse.lua

This commit is contained in:
Frank
2020-04-03 17:48:39 +02:00
parent d06d23cba2
commit 2dbfe1d4ee
@@ -3173,7 +3173,7 @@ function WAREHOUSE:FindNearestWarehouse(MinAssets, Descriptor, DescriptorValue,
-- Get number of assets. Whole stock is returned if no descriptor/value is given. -- Get number of assets. Whole stock is returned if no descriptor/value is given.
local nassets=warehouse:GetNumberOfAssets(Descriptor, DescriptorValue) local nassets=warehouse:GetNumberOfAssets(Descriptor, DescriptorValue)
--env.info(string.format(" FF warehouse %s nassets = %d for %s=%s", warehouse.alias, nassets, tostring(Descriptor), tostring(DescriptorValue))) --env.info(string.format("FF warehouse %s nassets = %d for %s=%s", warehouse.alias, nassets, tostring(Descriptor), tostring(DescriptorValue)))
-- Assume we have enough. -- Assume we have enough.
local enough=true local enough=true
@@ -3551,7 +3551,7 @@ function WAREHOUSE:_JobDone()
-- Debug text. -- Debug text.
local text=string.format("Group %s: speed=%d km/h, onground=%s , airbase=%s, spawnzone=%s ==> ishome=%s", group:GetName(), speed, tostring(onground), airbase, tostring(inspawnzone), tostring(ishome)) local text=string.format("Group %s: speed=%d km/h, onground=%s , airbase=%s, spawnzone=%s ==> ishome=%s", group:GetName(), speed, tostring(onground), airbase, tostring(inspawnzone), tostring(ishome))
self:T(self.lid..text) self:I(self.lid..text)
if ishome then if ishome then
@@ -3755,11 +3755,14 @@ function WAREHOUSE:onafterAddAsset(From, Event, To, group, ngroups, forceattribu
if istransport==true then if istransport==true then
request.ntransporthome=request.ntransporthome+1 request.ntransporthome=request.ntransporthome+1
request.transportgroupset:Remove(group:GetName(), true) request.transportgroupset:Remove(group:GetName(), true)
self:T3(warehouse.lid..string.format("Transport %d of %s returned home.", request.ntransporthome, tostring(request.ntransport))) local ntrans=request.transportgroupset:Count()
self:T2(warehouse.lid..string.format("Transport %d of %s returned home. TransportSet=%d", request.ntransporthome, tostring(request.ntransport), ntrans))
elseif istransport==false then elseif istransport==false then
request.ndelivered=request.ndelivered+1 request.ndelivered=request.ndelivered+1
request.cargogroupset:Remove(self:_GetNameWithOut(group), true) local namewo=self:_GetNameWithOut(group)
self:T3(warehouse.lid..string.format("Cargo %d of %s delivered.", request.ndelivered, tostring(request.nasset))) request.cargogroupset:Remove(namewo, true)
local ncargo=request.cargogroupset:Count()
self:T2(warehouse.lid..string.format("Cargo %s: %d of %s delivered. CargoSet=%d", namewo, request.ndelivered, tostring(request.nasset), ncargo))
else else
self:E(warehouse.lid..string.format("WARNING: Group %s is neither cargo nor transport! Need to investigate...", group:GetName())) self:E(warehouse.lid..string.format("WARNING: Group %s is neither cargo nor transport! Need to investigate...", group:GetName()))
end end
@@ -3796,7 +3799,6 @@ function WAREHOUSE:onafterAddAsset(From, Event, To, group, ngroups, forceattribu
asset.wid=self.uid asset.wid=self.uid
-- No request associated with this asset. -- No request associated with this asset.
env.info(string.format("FF asset=%s: setting rid=nil", asset.spawngroupname))
asset.rid=nil asset.rid=nil
-- Asset is not spawned. -- Asset is not spawned.
@@ -4773,10 +4775,9 @@ function WAREHOUSE:onafterArrived(From, Event, To, group)
if group:IsGround() and group:GetSpeedMax()>1 then if group:IsGround() and group:GetSpeedMax()>1 then
group:RouteGroundTo(warehouse:GetCoordinate(), group:GetSpeedMax()*0.3, "Off Road") group:RouteGroundTo(warehouse:GetCoordinate(), group:GetSpeedMax()*0.3, "Off Road")
end end
-- Increase number of cargo delivered and transports home.
--local istransport=warehouse:_GroupIsTransport(group,request)
-- NOTE: This is done in the AddAsset() function. Dont know, why we do it also here.
--[[
if istransport==true then if istransport==true then
request.ntransporthome=request.ntransporthome+1 request.ntransporthome=request.ntransporthome+1
request.transportgroupset:Remove(group:GetName(), true) request.transportgroupset:Remove(group:GetName(), true)
@@ -4788,7 +4789,8 @@ function WAREHOUSE:onafterArrived(From, Event, To, group)
else else
self:E(warehouse.lid..string.format("ERROR: Group %s is neither cargo nor transport!", group:GetName())) self:E(warehouse.lid..string.format("ERROR: Group %s is neither cargo nor transport!", group:GetName()))
end end
]]
-- Move asset from pending queue into new warehouse. -- Move asset from pending queue into new warehouse.
warehouse:__AddAsset(60, group) warehouse:__AddAsset(60, group)
end end
@@ -5134,22 +5136,23 @@ function WAREHOUSE:onafterAssetSpawned(From, Event, To, group, asset, request)
for _,_asset in pairs(request.assets) do for _,_asset in pairs(request.assets) do
local assetitem=_asset --#WAREHOUSE.Assetitem local assetitem=_asset --#WAREHOUSE.Assetitem
self:I(string.format("FF Asset %s spawned %s as %s", assetitem.templatename, tostring(assetitem.spawned), tostring(assetitem.spawngroupname))) -- Debug info.
self:T2(self.lid..string.format("Asset %s spawned %s as %s", assetitem.templatename, tostring(assetitem.spawned), tostring(assetitem.spawngroupname)))
if assetitem.spawned then if assetitem.spawned then
n=n+1 n=n+1
else else
self:E("FF What?! This should not happen!") self:E(self.lid.."FF What?! This should not happen!")
end end
end end
-- Trigger event. -- Trigger event.
if n==request.nasset+request.ntransport then if n==request.nasset+request.ntransport then
env.info(string.format("All assets %d (ncargo=%d + ntransport=%d) of request rid=%d spawned. Calling RequestSpawned", n, request.nasset, request.ntransport, request.uid)) self:T3(self.lid..string.format("All assets %d (ncargo=%d + ntransport=%d) of request rid=%d spawned. Calling RequestSpawned", n, request.nasset, request.ntransport, request.uid))
self:RequestSpawned(request, request.cargogroupset, request.transportgroupset) self:RequestSpawned(request, request.cargogroupset, request.transportgroupset)
else else
env.info(string.format("Not all assets %d (ncargo=%d + ntransport=%d) of request rid=%d spawned YET", n, request.nasset, request.ntransport, request.uid)) self:T3(self.lid..string.format("Not all assets %d (ncargo=%d + ntransport=%d) of request rid=%d spawned YET", n, request.nasset, request.ntransport, request.uid))
end end
end end
@@ -5464,7 +5467,6 @@ function WAREHOUSE:_SpawnAssetRequest(Request)
-- Set request ID. -- Set request ID.
asset.rid=Request.uid asset.rid=Request.uid
env.info(string.format("FF asset=%s: setting rid=%s", asset.spawngroupname, tostring(asset.rid)))
-- Spawn group name. -- Spawn group name.
local _alias=asset.spawngroupname local _alias=asset.spawngroupname
@@ -5757,12 +5759,11 @@ function WAREHOUSE:_SpawnAssetPrepareTemplate(asset, alias)
-- Nillify the group ID. -- Nillify the group ID.
template.groupId=nil template.groupId=nil
-- No late activation. -- No late activation.
template.lateActivation=false template.lateActivation=false
if asset.missionTask then if asset.missionTask then
env.info("FF setting mission task to "..tostring(asset.missionTask)) self:I(self.lid..string.format("Setting mission task to %s", tostring(asset.missionTask)))
template.task=asset.missionTask template.task=asset.missionTask
end end
@@ -7749,7 +7750,8 @@ function WAREHOUSE:_GetNameWithOut(group)
local groupname=type(group)=="string" and group or group:GetName() local groupname=type(group)=="string" and group or group:GetName()
if groupname:find("CARGO") then if groupname:find("CARGO") then
return UTILS.Split(groupname, "#CARGO")[1] local name=groupname:gsub("#CARGO", "")
return name
else else
return groupname return groupname
end end