mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
commit
913b2c6d3f
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user