Plug market sort into module grouping
This commit is contained in:
@@ -56,13 +56,8 @@ class AmmoPicker(AuxiliaryFrame):
|
|||||||
rb.SetValue(False)
|
rb.SetValue(False)
|
||||||
mainSizer.Add(rb, 0, wx.EXPAND | wx.ALL, 5)
|
mainSizer.Add(rb, 0, wx.EXPAND | wx.ALL, 5)
|
||||||
|
|
||||||
for ammos, mods in mods.items():
|
for modInfo, ammo in mods:
|
||||||
modCounts = {}
|
text = '\n'.join('{}x {}'.format(amount, item.name) for item, amount in modInfo)
|
||||||
for mod in mods:
|
|
||||||
if mod.item.name not in modCounts:
|
|
||||||
modCounts[mod.item.name] = 0
|
|
||||||
modCounts[mod.item.name] += 1
|
|
||||||
text = '\n'.join('{}x {}'.format(a, n) for n, a in modCounts.items())
|
|
||||||
addRadioButton(text)
|
addRadioButton(text)
|
||||||
if drones:
|
if drones:
|
||||||
addRadioButton('Drones')
|
addRadioButton('Drones')
|
||||||
@@ -82,8 +77,8 @@ class AmmoPicker(AuxiliaryFrame):
|
|||||||
def getMods(self, fit):
|
def getMods(self, fit):
|
||||||
sMkt = Market.getInstance()
|
sMkt = Market.getInstance()
|
||||||
loadableCharges = {}
|
loadableCharges = {}
|
||||||
# Modules, Format: {frozenset(ammo): [module list]}
|
# Modules, format: {frozenset(ammo): {item: count}}
|
||||||
mods = {}
|
modsPrelim = {}
|
||||||
if fit is not None:
|
if fit is not None:
|
||||||
for mod in fit.modules:
|
for mod in fit.modules:
|
||||||
if not mod.canDealDamage():
|
if not mod.canDealDamage():
|
||||||
@@ -98,8 +93,20 @@ class AmmoPicker(AuxiliaryFrame):
|
|||||||
charges.add(charge)
|
charges.add(charge)
|
||||||
# We're not interested in modules which contain no charges
|
# We're not interested in modules which contain no charges
|
||||||
if charges:
|
if charges:
|
||||||
mods.setdefault(frozenset(charges), []).append(mod)
|
data = modsPrelim.setdefault(frozenset(charges), {})
|
||||||
return mods
|
if mod.item not in data:
|
||||||
|
data[mod.item] = 0
|
||||||
|
data[mod.item] += 1
|
||||||
|
# Format: [([(item, count), ...], frozenset(ammo)), ...]
|
||||||
|
modsFinal = []
|
||||||
|
for charges, itemCounts in modsPrelim.items():
|
||||||
|
modsFinal.append((
|
||||||
|
# Sort items within group
|
||||||
|
sorted(itemCounts.items(), key=lambda i: sMkt.itemSort(i[0]), reverse=True),
|
||||||
|
charges))
|
||||||
|
# Sort item groups
|
||||||
|
modsFinal.sort(key=lambda i: sMkt.itemSort(i[0][0][0]), reverse=True)
|
||||||
|
return modsFinal
|
||||||
|
|
||||||
def getDrones(self, fit):
|
def getDrones(self, fit):
|
||||||
drones = set()
|
drones = set()
|
||||||
|
|||||||
Reference in New Issue
Block a user