Files
pyfa/gui/builtinViewColumns/capacitorUse.py
2019-08-21 12:11:22 +03:00

76 lines
2.6 KiB
Python

# =============================================================================
# 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 <http://www.gnu.org/licenses/>.
# =============================================================================
# noinspection PyPackageRequirements
import wx
from eos.saveddata.mode import Mode
from eos.utils.float import floatUnerr
from gui.bitmap_loader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from gui.viewColumn import ViewColumn
from service.attribute import Attribute
from service.fit import Fit
class CapacitorUse(ViewColumn):
name = 'Capacitor Usage'
def __init__(self, fittingView, params):
ViewColumn.__init__(self, fittingView)
self.mask = wx.LIST_MASK_IMAGE
Attribute.getInstance().getAttributeInfo('capacitorNeed')
self.imageId = fittingView.imageList.GetImageIndex('capacitorRecharge_small', 'gui')
self.bitmap = BitmapLoader.getBitmap('capacitorRecharge_small', 'gui')
def getText(self, mod):
if isinstance(mod, Mode):
return ''
fit = Fit.getInstance().getFit(self.fittingView.getActiveFit())
if fit is None:
return ''
capUse = mod.capUse
# Do not show cap diff numbers
if mod.item is not None and mod.item.group.name in (
'Capacitor Battery', 'Structure Capacitor Battery',
'Capacitor Power Relay', 'Structure Capacitor Power Relay',
'Capacitor Recharger', 'Power Diagnostic System', 'Capacitor Flux Coil',
'Rig Core', 'Shield Power Relay'
):
capRegenDiff = fit.getCapRegenGainFromMod(mod)
else:
capRegenDiff = 0
capDiff = floatUnerr(capRegenDiff - capUse)
if capDiff:
return formatAmount(capDiff, 3, 0, 3, forceSign=True)
else:
return ''
def getImageId(self, mod):
return -1
def getToolTip(self, mod):
return 'Capacitor Usage'
CapacitorUse.register()