Update CTLD.lua

Removed quantity menu if there is only one set.
This commit is contained in:
leka1986
2025-11-09 02:16:02 +01:00
committed by GitHub
parent aa4cf37aed
commit 7b44e7a3f6
+54
View File
@@ -5655,6 +5655,23 @@ function CTLD:_RefreshDropCratesMenu(Group, Unit)
table.insert(self.CrateGroupList[Unit:GetName()],chunk) table.insert(self.CrateGroupList[Unit:GetName()],chunk)
i=i+needed i=i+needed
end end
if sets==1 then
MENU_GROUP_COMMAND:New(Group,"Drop",parentMenu,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty)
local uName=UnitArg:GetName()
for k=1,qty do
local lst=selfArg.CrateGroupList and selfArg.CrateGroupList[uName]
if not lst then break end
local idx=nil
for j=1,#lst do
local ch=lst[j]
local first=ch and ch[1]
if first and (not first:WasDropped()) and first:GetName()==cNameArg and #ch>=neededArg then idx=j break end
end
if not idx then break end
selfArg:_UnloadSingleCrateSet(GroupArg,UnitArg,idx)
end
end,self,Group,Unit,cName,needed,1)
else
for q=1,sets do for q=1,sets do
local qm=MENU_GROUP:New(Group,string.format("Drop %d Set%s",q,q>1 and "s" or ""),parentMenu) local qm=MENU_GROUP:New(Group,string.format("Drop %d Set%s",q,q>1 and "s" or ""),parentMenu)
MENU_GROUP_COMMAND:New(Group,"Drop",qm,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty) MENU_GROUP_COMMAND:New(Group,"Drop",qm,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty)
@@ -5673,6 +5690,7 @@ function CTLD:_RefreshDropCratesMenu(Group, Unit)
end end
end,self,Group,Unit,cName,needed,q) end,self,Group,Unit,cName,needed,q)
end end
end
lineIndex=lineIndex+1 lineIndex=lineIndex+1
end end
if i<=#list then if i<=#list then
@@ -5715,6 +5733,41 @@ function CTLD:_RefreshDropCratesMenu(Group, Unit)
table.insert(self.CrateGroupList[Unit:GetName()],chunk) table.insert(self.CrateGroupList[Unit:GetName()],chunk)
i=i+needed i=i+needed
end end
if sets==1 then
MENU_GROUP_COMMAND:New(Group,"Drop",parentMenu,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty)
local uName=UnitArg:GetName()
for k=1,qty do
local lst=selfArg.CrateGroupList and selfArg.CrateGroupList[uName]
if not lst then break end
local idx=nil
for j=1,#lst do
local ch=lst[j]
local first=ch and ch[1]
if first and (not first:WasDropped()) and first:GetName()==cNameArg and #ch>=neededArg then idx=j break end
end
if not idx then break end
selfArg:_UnloadSingleCrateSet(GroupArg,UnitArg,idx)
end
end,self,Group,Unit,cName,needed,1)
if not ( self:IsUnitInAir(Unit) and self:IsFixedWing(Unit) ) then
MENU_GROUP_COMMAND:New(Group,"Drop and build",parentMenu,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty)
local uName=UnitArg:GetName()
for k=1,qty do
local lst=selfArg.CrateGroupList and selfArg.CrateGroupList[uName]
if not lst then break end
local idx=nil
for j=1,#lst do
local ch=lst[j]
local first=ch and ch[1]
if first and (not first:WasDropped()) and first:GetName()==cNameArg and #ch>=neededArg then idx=j break end
end
if not idx then break end
selfArg:_UnloadSingleCrateSet(GroupArg,UnitArg,idx)
end
selfArg:_BuildCrates(GroupArg,UnitArg)
end,self,Group,Unit,cName,needed,1)
end
else
for q=1,sets do for q=1,sets do
local qm=MENU_GROUP:New(Group,string.format("Drop %d Set%s",q,q>1 and "s" or ""),parentMenu) local qm=MENU_GROUP:New(Group,string.format("Drop %d Set%s",q,q>1 and "s" or ""),parentMenu)
MENU_GROUP_COMMAND:New(Group,"Drop",qm,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty) MENU_GROUP_COMMAND:New(Group,"Drop",qm,function(selfArg,GroupArg,UnitArg,cNameArg,neededArg,qty)
@@ -5751,6 +5804,7 @@ function CTLD:_RefreshDropCratesMenu(Group, Unit)
end,self,Group,Unit,cName,needed,q) end,self,Group,Unit,cName,needed,q)
end end
end end
end
lineIndex=lineIndex+1 lineIndex=lineIndex+1
end end
if i<=#list then if i<=#list then