Merge pull request #2256 from FlightControl-Master/master

CTLD
This commit is contained in:
Thomas 2025-02-17 07:01:08 +01:00 committed by GitHub
commit 913b2c6d3f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3333,6 +3333,7 @@ function CTLD:_ListCargo(Group, Unit)
local maxloadable = self:_GetMaxLoadableMass(Unit)
local finddist = self.CrateDistance or 35
--local _,_,loadedgc,loadedno = self:_FindCratesNearby(Group,Unit,finddist,true)
if self.Loaded_Cargo[unitname] then
local no_troops = loadedcargo.Troopsloaded or 0
local no_crates = loadedcargo.Cratesloaded or 0
@ -3355,18 +3356,25 @@ function CTLD:_ListCargo(Group, Unit)
report:Add("------------------------------------------------------------")
report:Add(" -- CRATES --")
local cratecount = 0
local accumCrates = {}
for _,_cargo in pairs(cargotable or {}) do
local cargo = _cargo -- #CTLD_CARGO
local type = cargo:GetType() -- #CTLD_CARGO.Enum
if (type ~= CTLD_CARGO.Enum.TROOPS and type ~= CTLD_CARGO.Enum.ENGINEERS and type ~= CTLD_CARGO.Enum.GCLOADABLE) and (not cargo:WasDropped() or self.allowcratepickupagain) then
report:Add(string.format("Crate: %s size 1",cargo:GetName()))
cratecount = cratecount + 1
local cName = cargo:GetName()
local needed = cargo:GetCratesNeeded() or 1
accumCrates[cName] = accumCrates[cName] or {count=0, needed=needed}
accumCrates[cName].count = accumCrates[cName].count + 1
end
if type == CTLD_CARGO.Enum.GCLOADABLE and not cargo:WasDropped() then
report:Add(string.format("GC loaded Crate: %s size 1", cargo:GetName()))
cratecount = cratecount + 1
end
end
for cName, data in pairs(accumCrates) do
cratecount = cratecount + data.count
report:Add(string.format("Crate: %s %d/%d", cName, data.count, data.needed))
end
if cratecount == 0 then
report:Add(" N O N E")
end
@ -3393,7 +3401,6 @@ function CTLD:_ListCargo(Group, Unit)
end
return self
end
--- (Internal) Function to list loaded cargo.
-- @param #CTLD self
-- @param Wrapper.Group#GROUP Group
@ -4391,7 +4398,6 @@ function CTLD:_RefreshLoadCratesMenu(Group, Unit)
MENU_GROUP_COMMAND:New(Group, "No crates found! Rescan?", Group.MyLoadCratesMenu, function() self:_RefreshLoadCratesMenu(Group, Unit) end)
return
end
MENU_GROUP_COMMAND:New(Group, "Rescan?", Group.MyLoadCratesMenu, function() self:_RefreshLoadCratesMenu(Group, Unit) end)
MENU_GROUP_COMMAND:New(Group, "Load ALL", Group.MyLoadCratesMenu, self._LoadCratesNearby, self, Group, Unit)
local cargoByName = {}
for _, crate in pairs(nearby) do
@ -4408,6 +4414,7 @@ function CTLD:_RefreshLoadCratesMenu(Group, Unit)
if found >= needed then
line = string.format("Load %s", cName)
else
MENU_GROUP_COMMAND:New(Group, "Rescan?", Group.MyLoadCratesMenu, function() self:_RefreshLoadCratesMenu(Group, Unit) end)
line = string.format("Load %s (%d/%d)", cName, found, needed)
end
MENU_GROUP_COMMAND:New(Group, line, Group.MyLoadCratesMenu, self._LoadSingleCrateSet, self, Group, Unit, cName)