* Show fighter bay resources in fighter pane
* Give fighters a state * Include some toggled stats on the resources pane * Add some decent icons for fighter stuff
This commit is contained in:
@@ -31,6 +31,8 @@ from gui.utils.numberFormatter import formatAmount
|
||||
|
||||
class ResourcesViewFull(StatsView):
|
||||
name = "resourcesViewFull"
|
||||
contexts = ["drone", "fighter", "cargo"]
|
||||
|
||||
def __init__(self, parent):
|
||||
StatsView.__init__(self)
|
||||
self.parent = parent
|
||||
@@ -40,21 +42,37 @@ class ResourcesViewFull(StatsView):
|
||||
def pageChanged(self, event):
|
||||
page = self.mainFrame.additionsPane.getName(event.GetSelection())
|
||||
if page == "Cargo":
|
||||
self.toggleCargoGauge(True)
|
||||
self.toggleContext("cargo")
|
||||
elif page == "Fighters":
|
||||
self.toggleContext("fighter")
|
||||
else:
|
||||
self.toggleCargoGauge(False)
|
||||
self.toggleContext("drone")
|
||||
|
||||
def toggleCargoGauge(self, showCargo = False):
|
||||
if showCargo:
|
||||
self.bitmapFullCargoBay.Show()
|
||||
self.baseFullCargoBay.Show(True)
|
||||
self.bitmapFullDroneBay.Hide()
|
||||
self.baseFullDroneBay.Hide(True)
|
||||
def toggleContext(self, context):
|
||||
# Apparently you cannot .Hide(True) on a Window, otherwise I would just .Hide(context !== x).
|
||||
# This is a gimpy way to toggle this shit
|
||||
for x in self.contexts:
|
||||
bitmap = getattr(self, "bitmapFull{}Bay".format(x.capitalize()))
|
||||
base = getattr(self, "baseFull{}Bay".format(x.capitalize()))
|
||||
|
||||
if context == x:
|
||||
bitmap.Show()
|
||||
base.Show(True)
|
||||
else:
|
||||
bitmap.Hide()
|
||||
base.Hide(True)
|
||||
|
||||
fighter_sizer = getattr(self, "boxSizerFighter")
|
||||
drone_sizer = getattr(self, "boxSizerDrones")
|
||||
|
||||
print drone_sizer
|
||||
if context != "fighter":
|
||||
fighter_sizer.ShowItems(False)
|
||||
drone_sizer.ShowItems(True)
|
||||
else:
|
||||
self.bitmapFullDroneBay.Show()
|
||||
self.baseFullDroneBay.Show(True)
|
||||
self.bitmapFullCargoBay.Hide()
|
||||
self.baseFullCargoBay.Hide(True)
|
||||
fighter_sizer.ShowItems(True)
|
||||
drone_sizer.ShowItems(False)
|
||||
|
||||
|
||||
self.panel.Layout()
|
||||
self.headerPanel.Layout()
|
||||
@@ -72,7 +90,7 @@ class ResourcesViewFull(StatsView):
|
||||
root = wx.BoxSizer(wx.VERTICAL)
|
||||
contentSizer.Add(root, 0, wx.EXPAND, 0)
|
||||
|
||||
sizer = wx.GridSizer(1, 4)
|
||||
sizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
root.Add(sizer, 0, wx.EXPAND)
|
||||
root.Add(wx.StaticLine(contentPanel, wx.ID_ANY, style=wx.HORIZONTAL), 0, wx.EXPAND)
|
||||
|
||||
@@ -85,10 +103,10 @@ class ResourcesViewFull(StatsView):
|
||||
|
||||
|
||||
base = sizerResources
|
||||
|
||||
sizer.AddSpacer((0, 0), 1, wx.EXPAND, 5)
|
||||
#Turrets & launcher hardslots display
|
||||
tooltipText = {"turret":"Turret hardpoints", "launcher":"Launcher hardpoints", "drones":"Drones active", "calibration":"Calibration"}
|
||||
for type in ("turret", "launcher", "drones", "calibration"):
|
||||
tooltipText = {"turret":"Turret hardpoints", "launcher":"Launcher hardpoints", "drones":"Drones active", "fighter": "Fighter squadrons active", "calibration":"Calibration"}
|
||||
for type in ("turret", "launcher", "drones", "fighter", "calibration"):
|
||||
box = wx.BoxSizer(wx.HORIZONTAL)
|
||||
|
||||
bitmap = BitmapLoader.getStaticBitmap("%s_big" % type, parent, "gui")
|
||||
@@ -99,7 +117,7 @@ class ResourcesViewFull(StatsView):
|
||||
|
||||
sizer.Add(box, 0, wx.ALIGN_CENTER)
|
||||
|
||||
suffix = {'turret':'Hardpoints', 'launcher':'Hardpoints', 'drones':'Active', 'calibration':'Points'}
|
||||
suffix = {'turret':'Hardpoints', 'launcher':'Hardpoints', 'drones':'Active', 'fighter':'Tubes', 'calibration':'Points'}
|
||||
lbl = wx.StaticText(parent, wx.ID_ANY, "0")
|
||||
setattr(self, "label%sUsed%s%s" % (panel.capitalize(), type.capitalize(), suffix[type].capitalize()), lbl)
|
||||
box.Add(lbl, 0, wx.ALIGN_CENTER | wx.LEFT, 5)
|
||||
@@ -109,11 +127,17 @@ class ResourcesViewFull(StatsView):
|
||||
lbl = wx.StaticText(parent, wx.ID_ANY, "0")
|
||||
setattr(self, "label%sTotal%s%s" % (panel.capitalize(), type.capitalize(), suffix[type].capitalize()), lbl)
|
||||
box.Add(lbl, 0, wx.ALIGN_CENTER)
|
||||
setattr(self, "boxSizer{}".format(type.capitalize()), box)
|
||||
|
||||
# Hack - We add a spacer after each thing, but we are always hiding something. The spacer is stil there.
|
||||
# This way, we only have one space after the drones/fighters
|
||||
if type != "drones":
|
||||
sizer.AddSpacer((0, 0), 1, wx.EXPAND, 5)
|
||||
|
||||
|
||||
#PG, Cpu & drone stuff
|
||||
tooltipText = {"cpu":"CPU", "pg":"PowerGrid", "droneBay":"Drone bay", "droneBandwidth":"Drone bandwidth", "cargoBay":"Cargo bay"}
|
||||
for i, group in enumerate((("cpu", "pg"), ("cargoBay", "droneBay", "droneBandwidth"))):
|
||||
tooltipText = {"cpu":"CPU", "pg":"PowerGrid", "droneBay":"Drone bay", "fighterBay": "Fighter bay", "droneBandwidth":"Drone bandwidth", "cargoBay":"Cargo bay"}
|
||||
for i, group in enumerate((("cpu", "pg"), ("cargoBay", "droneBay", "fighterBay", "droneBandwidth"))):
|
||||
main = wx.BoxSizer(wx.VERTICAL)
|
||||
base.Add(main, 1 , wx.ALIGN_CENTER)
|
||||
|
||||
@@ -144,7 +168,7 @@ class ResourcesViewFull(StatsView):
|
||||
setattr(self, "label%sTotal%s" % (panel.capitalize(), capitalizedType), lbl)
|
||||
absolute.Add(lbl, 0, wx.ALIGN_LEFT)
|
||||
|
||||
units = {"cpu":" tf", "pg":" MW", "droneBandwidth":" mbit/s", "droneBay":u" m\u00B3", "cargoBay":u" m\u00B3"}
|
||||
units = {"cpu":" tf", "pg":" MW", "droneBandwidth":" mbit/s", "droneBay":u" m\u00B3", "fighterBay":u" m\u00B3", "cargoBay":u" m\u00B3"}
|
||||
lbl = wx.StaticText(parent, wx.ID_ANY, "%s" % units[type])
|
||||
absolute.Add(lbl, 0, wx.ALIGN_LEFT)
|
||||
|
||||
@@ -161,7 +185,7 @@ class ResourcesViewFull(StatsView):
|
||||
setattr(self, "base%s%s" % (panel.capitalize(), capitalizedType), b)
|
||||
setattr(self, "bitmap%s%s" % (panel.capitalize(), capitalizedType), bitmap)
|
||||
|
||||
self.toggleCargoGauge(False)
|
||||
self.toggleContext("drone")
|
||||
|
||||
def refreshPanel(self, fit):
|
||||
#If we did anything intresting, we'd update our labels to reflect the new fit's stats here
|
||||
@@ -172,6 +196,8 @@ class ResourcesViewFull(StatsView):
|
||||
("label%sTotalLauncherHardpoints", lambda: fit.ship.getModifiedItemAttr('launcherSlotsLeft'), 0, 0, 0),
|
||||
("label%sUsedDronesActive", lambda: fit.activeDrones, 0, 0, 0),
|
||||
("label%sTotalDronesActive", lambda: fit.extraAttributes["maxActiveDrones"], 0, 0, 0),
|
||||
("label%sUsedFighterTubes", lambda: fit.fighterTubesUsed, 3, 0, 9),
|
||||
("label%sTotalFighterTubes", lambda: fit.ship.getModifiedItemAttr("fighterTubes"), 3, 0, 9),
|
||||
("label%sUsedCalibrationPoints", lambda: fit.calibrationUsed, 0, 0, 0),
|
||||
("label%sTotalCalibrationPoints", lambda: fit.ship.getModifiedItemAttr('upgradeCapacity'), 0, 0, 0),
|
||||
("label%sUsedPg", lambda: fit.pgUsed, 4, 0, 9),
|
||||
@@ -179,9 +205,11 @@ class ResourcesViewFull(StatsView):
|
||||
("label%sTotalPg", lambda: fit.ship.getModifiedItemAttr("powerOutput"), 4, 0, 9),
|
||||
("label%sTotalCpu", lambda: fit.ship.getModifiedItemAttr("cpuOutput"), 4, 0, 9),
|
||||
("label%sUsedDroneBay", lambda: fit.droneBayUsed, 3, 0, 9),
|
||||
("label%sUsedFighterBay", lambda: fit.fighterBayUsed, 3, 0, 9),
|
||||
("label%sUsedDroneBandwidth", lambda: fit.droneBandwidthUsed, 3, 0, 9),
|
||||
("label%sTotalDroneBay", lambda: fit.ship.getModifiedItemAttr("droneCapacity"), 3, 0, 9),
|
||||
("label%sTotalDroneBandwidth", lambda: fit.ship.getModifiedItemAttr("droneBandwidth"), 3, 0, 9),
|
||||
("label%sTotalFighterBay", lambda: fit.ship.getModifiedItemAttr("fighterCapacity"), 3, 0, 9),
|
||||
("label%sUsedCargoBay", lambda: fit.cargoBayUsed, 3, 0, 9),
|
||||
("label%sTotalCargoBay", lambda: fit.ship.getModifiedItemAttr("capacity"), 3, 0, 9))
|
||||
panel = "Full"
|
||||
@@ -218,6 +246,14 @@ class ResourcesViewFull(StatsView):
|
||||
totalDronesActive = value
|
||||
labelTDA = label
|
||||
|
||||
if labelName % panel == "label%sUsedFighterTubes" % panel:
|
||||
usedFighterTubes = value
|
||||
labelUFT = label
|
||||
|
||||
if labelName % panel == "label%sTotalFighterTubes" % panel:
|
||||
totalFighterTubes = value
|
||||
labelTFT = label
|
||||
|
||||
if labelName % panel == "label%sUsedCalibrationPoints" % panel:
|
||||
usedCalibrationPoints = value
|
||||
labelUCP = label
|
||||
@@ -248,6 +284,10 @@ class ResourcesViewFull(StatsView):
|
||||
colorD = colorWarn
|
||||
else:
|
||||
colorD = colorNormal
|
||||
if usedFighterTubes > totalFighterTubes:
|
||||
colorF = colorWarn
|
||||
else:
|
||||
colorF = colorNormal
|
||||
if usedCalibrationPoints > totalCalibrationPoints:
|
||||
colorC = colorWarn
|
||||
else:
|
||||
@@ -259,6 +299,8 @@ class ResourcesViewFull(StatsView):
|
||||
labelTLH.SetForegroundColour(colorL)
|
||||
labelUDA.SetForegroundColour(colorD)
|
||||
labelTDA.SetForegroundColour(colorD)
|
||||
labelUFT.SetForegroundColour(colorF)
|
||||
labelTFT.SetForegroundColour(colorF)
|
||||
labelUCP.SetForegroundColour(colorC)
|
||||
labelTCP.SetForegroundColour(colorC)
|
||||
|
||||
@@ -266,11 +308,12 @@ class ResourcesViewFull(StatsView):
|
||||
resMax = (lambda: fit.ship.getModifiedItemAttr("cpuOutput"),
|
||||
lambda: fit.ship.getModifiedItemAttr("powerOutput"),
|
||||
lambda: fit.ship.getModifiedItemAttr("droneCapacity"),
|
||||
lambda: fit.ship.getModifiedItemAttr("fighterCapacity"),
|
||||
lambda: fit.ship.getModifiedItemAttr("droneBandwidth"),
|
||||
lambda: fit.ship.getModifiedItemAttr("capacity"))
|
||||
|
||||
i = 0
|
||||
for resourceType in ("cpu", "pg", "droneBay", "droneBandwidth", "cargoBay"):
|
||||
for resourceType in ("cpu", "pg", "droneBay", "fighterBay", "droneBandwidth", "cargoBay"):
|
||||
if fit is not None:
|
||||
capitalizedType = resourceType[0].capitalize() + resourceType[1:]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user