diff --git a/gui/builtinViewColumns/__init__.py b/gui/builtinViewColumns/__init__.py index 46dac14d8..408fd5eb9 100644 --- a/gui/builtinViewColumns/__init__.py +++ b/gui/builtinViewColumns/__init__.py @@ -1,4 +1,5 @@ __all__ = ["moduleState", "moduleNameOrSlot", "attributeDisplay", "maxRange", "name", "droneDps", "droneNameAmount", "droneCheckbox", "moduleAmmo", "capacitorUse", "activityCheckbox", "moduleAmmoIcon", "modulePrice", - "projectedName", "projectedState", "projectedAmmoIcon", "projectedAmmo"] + "projectedName", "projectedState", "projectedAmmoIcon", "projectedAmmo", + "moduleTracking"] diff --git a/gui/builtinViewColumns/moduleTracking.py b/gui/builtinViewColumns/moduleTracking.py new file mode 100755 index 000000000..f4f65ae8b --- /dev/null +++ b/gui/builtinViewColumns/moduleTracking.py @@ -0,0 +1,81 @@ +#=============================================================================== +# Copyright (C) 2010 Diego Duclos +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +#=============================================================================== + +from gui import builtinViewColumns +from gui.viewColumn import ViewColumn +from gui import bitmapLoader +import service +from util import formatAmount +from eos.types import Hardpoint + +class MaxRange(ViewColumn): + name = "Module Tracking" + def __init__(self, fittingView, params = None): + if params == None: + params = {"showIcon": True, + "displayName": False} + ViewColumn.__init__(self, fittingView) + cAttribute = service.Attribute.getInstance() + info = cAttribute.getAttributeInfo("trackingSpeed") + self.info = info + if params["showIcon"]: + iconFile = info.icon.iconFile if info.icon else None + if iconFile: + bitmap = bitmapLoader.getBitmap(iconFile, "pack") + if bitmap: + self.imageId = fittingView.imageList.Add(bitmap) + else: + self.imageId = -1 + else: + self.imageId = -1 + else: + self.imageId = -1 + + if params["displayName"] or self.imageId == -1: + self.columnText = info.displayName if info.displayName != "" else info.name + + def getText(self, stuff): + if stuff.hardpoint == Hardpoint.TURRET: + return (formatAmount(stuff.getModifiedItemAttr("trackingSpeed"), 3, 0, 3)) + elif stuff.hardpoint == Hardpoint.MISSILE: + if stuff.charge is None: + return "" + + cloudSize = stuff.getModifiedChargeAttr("aoeCloudSize") + text = "%s%s" % (formatAmount(cloudSize, 3, 0, 3), + stuff.charge.attributes["aoeCloudSize"].unit.displayName) + + aoeVelocity = stuff.getModifiedChargeAttr("aoeVelocity") + if aoeVelocity: + text = "%s | %s%s" % (text, + formatAmount(aoeVelocity, 3, 0, 3), + "m/s") #Hardcoded unit here, m/sec is too long + + return text + else: + return "" + + def getImageId(self, mod): + return -1 + + def getParameters(self): + return (("displayName", bool, False), + ("showIcon", bool, True)) + +MaxRange.register() diff --git a/gui/fittingView.py b/gui/fittingView.py index 90f623884..ce4912bb8 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -37,7 +37,7 @@ class FittingView(d.Display): "attr:cpu", "Capacitor Usage", "Module Price", - "attr:trackingSpeed", + "Module Tracking", "Max range", "Module Ammo", ]