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 maxloadable = self:_GetMaxLoadableMass(Unit)
|
||||||
local finddist = self.CrateDistance or 35
|
local finddist = self.CrateDistance or 35
|
||||||
--local _,_,loadedgc,loadedno = self:_FindCratesNearby(Group,Unit,finddist,true)
|
--local _,_,loadedgc,loadedno = self:_FindCratesNearby(Group,Unit,finddist,true)
|
||||||
|
|
||||||
if self.Loaded_Cargo[unitname] then
|
if self.Loaded_Cargo[unitname] then
|
||||||
local no_troops = loadedcargo.Troopsloaded or 0
|
local no_troops = loadedcargo.Troopsloaded or 0
|
||||||
local no_crates = loadedcargo.Cratesloaded or 0
|
local no_crates = loadedcargo.Cratesloaded or 0
|
||||||
@ -3346,7 +3347,7 @@ function CTLD:_ListCargo(Group, Unit)
|
|||||||
local cargo = _cargo -- #CTLD_CARGO
|
local cargo = _cargo -- #CTLD_CARGO
|
||||||
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
||||||
if (type == CTLD_CARGO.Enum.TROOPS or type == CTLD_CARGO.Enum.ENGINEERS) and (not cargo:WasDropped() or self.allowcratepickupagain) then
|
if (type == CTLD_CARGO.Enum.TROOPS or type == CTLD_CARGO.Enum.ENGINEERS) and (not cargo:WasDropped() or self.allowcratepickupagain) then
|
||||||
report:Add(string.format("Troop: %s size %d",cargo:GetName(),cargo:GetCratesNeeded()))
|
report:Add(string.format("Troop: %s size %d", cargo:GetName(), cargo:GetCratesNeeded()))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if report:GetCount() == 4 then
|
if report:GetCount() == 4 then
|
||||||
@ -3355,18 +3356,25 @@ function CTLD:_ListCargo(Group, Unit)
|
|||||||
report:Add("------------------------------------------------------------")
|
report:Add("------------------------------------------------------------")
|
||||||
report:Add(" -- CRATES --")
|
report:Add(" -- CRATES --")
|
||||||
local cratecount = 0
|
local cratecount = 0
|
||||||
|
local accumCrates = {}
|
||||||
for _,_cargo in pairs(cargotable or {}) do
|
for _,_cargo in pairs(cargotable or {}) do
|
||||||
local cargo = _cargo -- #CTLD_CARGO
|
local cargo = _cargo -- #CTLD_CARGO
|
||||||
local type = cargo:GetType() -- #CTLD_CARGO.Enum
|
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
|
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()))
|
local cName = cargo:GetName()
|
||||||
cratecount = cratecount + 1
|
local needed = cargo:GetCratesNeeded() or 1
|
||||||
|
accumCrates[cName] = accumCrates[cName] or {count=0, needed=needed}
|
||||||
|
accumCrates[cName].count = accumCrates[cName].count + 1
|
||||||
end
|
end
|
||||||
if type == CTLD_CARGO.Enum.GCLOADABLE and not cargo:WasDropped() then
|
if type == CTLD_CARGO.Enum.GCLOADABLE and not cargo:WasDropped() then
|
||||||
report:Add(string.format("GC loaded Crate: %s size 1",cargo:GetName()))
|
report:Add(string.format("GC loaded Crate: %s size 1", cargo:GetName()))
|
||||||
cratecount = cratecount + 1
|
cratecount = cratecount + 1
|
||||||
end
|
end
|
||||||
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
|
if cratecount == 0 then
|
||||||
report:Add(" N O N E")
|
report:Add(" N O N E")
|
||||||
end
|
end
|
||||||
@ -3387,13 +3395,12 @@ function CTLD:_ListCargo(Group, Unit)
|
|||||||
report:Add("------------------------------------------------------------")
|
report:Add("------------------------------------------------------------")
|
||||||
report:Add("Total Mass: ".. loadedmass .. " kg. Loadable: "..maxloadable.." kg.")
|
report:Add("Total Mass: ".. loadedmass .. " kg. Loadable: "..maxloadable.." kg.")
|
||||||
local text = report:Text()
|
local text = report:Text()
|
||||||
self:_SendMessage(text, 30, true, Group)
|
self:_SendMessage(text, 30, true, Group)
|
||||||
else
|
else
|
||||||
self:_SendMessage(string.format("Nothing loaded!\nTroop limit: %d | Crate limit %d | Weight limit %d kgs",trooplimit,cratelimit,maxloadable), 10, false, Group)
|
self:_SendMessage(string.format("Nothing loaded!\nTroop limit: %d | Crate limit %d | Weight limit %d kgs", trooplimit, cratelimit, maxloadable), 10, false, Group)
|
||||||
end
|
end
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
--- (Internal) Function to list loaded cargo.
|
--- (Internal) Function to list loaded cargo.
|
||||||
-- @param #CTLD self
|
-- @param #CTLD self
|
||||||
-- @param Wrapper.Group#GROUP Group
|
-- @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)
|
MENU_GROUP_COMMAND:New(Group, "No crates found! Rescan?", Group.MyLoadCratesMenu, function() self:_RefreshLoadCratesMenu(Group, Unit) end)
|
||||||
return
|
return
|
||||||
end
|
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)
|
MENU_GROUP_COMMAND:New(Group, "Load ALL", Group.MyLoadCratesMenu, self._LoadCratesNearby, self, Group, Unit)
|
||||||
local cargoByName = {}
|
local cargoByName = {}
|
||||||
for _, crate in pairs(nearby) do
|
for _, crate in pairs(nearby) do
|
||||||
@ -4408,6 +4414,7 @@ function CTLD:_RefreshLoadCratesMenu(Group, Unit)
|
|||||||
if found >= needed then
|
if found >= needed then
|
||||||
line = string.format("Load %s", cName)
|
line = string.format("Load %s", cName)
|
||||||
else
|
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)
|
line = string.format("Load %s (%d/%d)", cName, found, needed)
|
||||||
end
|
end
|
||||||
MENU_GROUP_COMMAND:New(Group, line, Group.MyLoadCratesMenu, self._LoadSingleCrateSet, self, Group, Unit, cName)
|
MENU_GROUP_COMMAND:New(Group, line, Group.MyLoadCratesMenu, self._LoadSingleCrateSet, self, Group, Unit, cName)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user