From bd33efa87595119f9a7a41c466cc133863a78477 Mon Sep 17 00:00:00 2001 From: Indiction Date: Sat, 9 Mar 2019 18:45:28 +0100 Subject: [PATCH] Changed FittingSlot to IntEnum --- eos/const.py | 3 ++- eos/saveddata/fighter.py | 2 +- eos/saveddata/fit.py | 6 +++--- eos/saveddata/module.py | 14 +++++++------- gui/builtinAdditionPanes/fighterView.py | 3 ++- gui/builtinViewColumns/baseIcon.py | 5 +++-- gui/builtinViewColumns/baseName.py | 7 ++++--- gui/builtinViewColumns/state.py | 2 +- gui/builtinViews/fittingView.py | 10 +++++----- service/character.py | 3 ++- service/port/dna.py | 3 ++- service/port/efs.py | 3 ++- service/port/eft.py | 5 +++-- service/port/esi.py | 3 ++- service/port/xml.py | 5 +++-- 15 files changed, 42 insertions(+), 32 deletions(-) diff --git a/eos/const.py b/eos/const.py index 08a0dc3e1..63b7cc533 100644 --- a/eos/const.py +++ b/eos/const.py @@ -20,7 +20,8 @@ from eos.enum import Enum from enum import IntEnum,unique -class FittingSlot(Enum): +@unique +class FittingSlot(IntEnum): """ Contains slots for ship fittings """ diff --git a/eos/saveddata/fighter.py b/eos/saveddata/fighter.py index b11ced0fd..d0e9513f7 100644 --- a/eos/saveddata/fighter.py +++ b/eos/saveddata/fighter.py @@ -25,8 +25,8 @@ import eos.db from eos.effectHandlerHelpers import HandledItem, HandledCharge from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut, ChargeAttrShortcut from eos.saveddata.fighterAbility import FighterAbility -from eos.saveddata.module import FittingSlot from eos.utils.stats import DmgTypes +from eos.const import FittingSlot pyfalog = Logger(__name__) diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 5d7310dfc..0daff8b50 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -29,12 +29,12 @@ import eos.db from eos import capSim from eos.effectHandlerHelpers import HandledModuleList, HandledDroneCargoList, HandledImplantBoosterList, HandledProjectedDroneList, HandledProjectedModList from eos.enum import Enum -from eos.const import ImplantLocation, CalcType +from eos.const import ImplantLocation, CalcType, FittingSlot from eos.saveddata.ship import Ship from eos.saveddata.drone import Drone from eos.saveddata.character import Character from eos.saveddata.citadel import Citadel -from eos.saveddata.module import Module, FittingModuleState, FittingSlot, FittingHardpoint +from eos.saveddata.module import Module, FittingModuleState, FittingHardpoint from eos.utils.stats import DmgTypes from logbook import Logger @@ -892,7 +892,7 @@ class Fit(object): if self.ship is None: return - for slotType in (FittingSlot.LOW, FittingSlot.MED, FittingSlot.HIGH, FittingSlot.RIG, FittingSlot.SUBSYSTEM, FittingSlot.SERVICE): + for slotType in (FittingSlot.LOW.value, FittingSlot.MED.value, FittingSlot.HIGH.value, FittingSlot.RIG.value, FittingSlot.SUBSYSTEM.value, FittingSlot.SERVICE.value): amount = self.getSlotsFree(slotType, True) if amount > 0: for _ in range(int(amount)): diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 34b8143c1..57f61cca8 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -23,7 +23,7 @@ from logbook import Logger from sqlalchemy.orm import reconstructor, validates import eos.db -from eos.const import FittingSlot, FittingModuleState, FittingHardpoint +from eos.const import FittingModuleState, FittingHardpoint, FittingSlot from eos.effectHandlerHelpers import HandledCharge, HandledItem from eos.enum import Enum from eos.modifiedAttributeDict import ChargeAttrShortcut, ItemAttrShortcut, ModifiedAttributeDict @@ -720,12 +720,12 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @staticmethod def calculateSlot(item): effectSlotMap = { - "rigSlot" : FittingSlot.RIG, - "loPower" : FittingSlot.LOW, - "medPower" : FittingSlot.MED, - "hiPower" : FittingSlot.HIGH, - "subSystem" : FittingSlot.SUBSYSTEM, - "serviceSlot": FittingSlot.SERVICE + "rigSlot" : FittingSlot.RIG.value, + "loPower" : FittingSlot.LOW.value, + "medPower" : FittingSlot.MED.value, + "hiPower" : FittingSlot.HIGH.value, + "subSystem" : FittingSlot.SUBSYSTEM.value, + "serviceSlot": FittingSlot.SERVICE.value } if item is None: return None diff --git a/gui/builtinAdditionPanes/fighterView.py b/gui/builtinAdditionPanes/fighterView.py index 60b31536d..61402eb03 100644 --- a/gui/builtinAdditionPanes/fighterView.py +++ b/gui/builtinAdditionPanes/fighterView.py @@ -25,7 +25,8 @@ from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED import gui.mainFrame import gui.display as d from gui.builtinViewColumns.state import State -from eos.saveddata.module import FittingSlot +#from eos.saveddata.module import FittingSlot +from eos.const import FittingSlot from gui.contextMenu import ContextMenu from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit diff --git a/gui/builtinViewColumns/baseIcon.py b/gui/builtinViewColumns/baseIcon.py index 536d90da9..e5cbd62f2 100644 --- a/gui/builtinViewColumns/baseIcon.py +++ b/gui/builtinViewColumns/baseIcon.py @@ -2,8 +2,9 @@ import wx from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone -from eos.saveddata.module import Module, FittingSlot, Rack +from eos.saveddata.module import Module, Rack from eos.saveddata.fit import Fit +from eos.const import FittingSlot from gui.viewColumn import ViewColumn @@ -32,7 +33,7 @@ class BaseIcon(ViewColumn): return self.shipImage elif isinstance(stuff, Module): if stuff.isEmpty: - return self.fittingView.imageList.GetImageIndex("slot_%s_small" % FittingSlot.getName(stuff.slot).lower(), + return self.fittingView.imageList.GetImageIndex("slot_%s_small" % FittingSlot(stuff.slot).name.lower(), "gui") else: return self.loadIconFile(stuff.item.iconID or "") diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index d6710c782..cad1eebd0 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -25,8 +25,9 @@ from eos.saveddata.cargo import Cargo from eos.saveddata.implant import Implant from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter -from eos.saveddata.module import Module, FittingSlot, Rack +from eos.saveddata.module import Module, Rack from eos.saveddata.fit import Fit +from eos.const import FittingSlot from service.fit import Fit as FitSvc from service.market import Market from gui.viewColumn import ViewColumn @@ -75,7 +76,7 @@ class BaseName(ViewColumn): if stuff.slot == FittingSlot.MODE: return '─ Tactical Mode ─' else: - return '─ {} {} Slot{}─'.format(stuff.num, FittingSlot.getName(stuff.slot).capitalize(), '' if stuff.num == 1 else 's') + return '─ {} {} Slot{}─'.format(stuff.num, FittingSlot(stuff.slot).name.capitalize(), '' if stuff.num == 1 else 's') else: return "" elif isinstance(stuff, Module): @@ -89,7 +90,7 @@ class BaseName(ViewColumn): return "{} {}".format(type.name, stuff.item.name[-1:]) if stuff.isEmpty: - return "%s Slot" % FittingSlot.getName(stuff.slot).capitalize() + return "%s Slot" % FittingSlot(stuff.slot).name.capitalize() else: return stuff.item.name elif isinstance(stuff, Implant): diff --git a/gui/builtinViewColumns/state.py b/gui/builtinViewColumns/state.py index 14a797561..793fbd57e 100644 --- a/gui/builtinViewColumns/state.py +++ b/gui/builtinViewColumns/state.py @@ -46,7 +46,7 @@ class State(ViewColumn): def getToolTip(self, mod): if isinstance(mod, Module) and not mod.isEmpty: - return State_.getName(mod.state).title() + return State_(mod.state).name.title() def getImageId(self, stuff): generic_active = self.fittingView.imageList.GetImageIndex("state_%s_small" % State_(1).name.lower(), "gui") diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 83d9e43df..7b5646fa4 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -30,7 +30,8 @@ import gui.globalEvents as GE import gui.mainFrame import gui.multiSwitch from eos.saveddata.mode import Mode -from eos.saveddata.module import Module, Rack, FittingSlot +from eos.saveddata.module import Module, Rack +from eos.const import FittingSlot from gui.bitmap_loader import BitmapLoader from gui.builtinMarketBrowser.events import ITEM_SELECTED from gui.builtinShipBrowser.events import EVT_FIT_REMOVED, EVT_FIT_RENAMED, EVT_FIT_SELECTED, FitSelected @@ -648,8 +649,7 @@ class FittingView(d.Display): slotMap = {} # test for too many modules (happens with t3s / CCP change in slot layout) - for slotType in FittingSlot.getTypes(): - slot = FittingSlot.getValue(slotType) + for slot in [e.value for e in FittingSlot]: slotMap[slot] = fit.getSlotsFree(slot) < 0 for i, mod in enumerate(self.mods): @@ -735,8 +735,8 @@ class FittingView(d.Display): return slotMap = {} - for slotType in FittingSlot.getTypes(): - slot = FittingSlot.getValue(slotType) + + for slot in [e.value for e in FittingSlot]: slotMap[slot] = fit.getSlotsFree(slot) < 0 padding = 2 diff --git a/service/character.py b/service/character.py index 1dc14c7c6..7e95c5f82 100644 --- a/service/character.py +++ b/service/character.py @@ -37,7 +37,8 @@ from service.esi import Esi from eos.saveddata.implant import Implant as es_Implant from eos.saveddata.character import Character as es_Character, Skill -from eos.saveddata.module import FittingSlot as es_Slot, Module as es_Module +from eos.saveddata.module import Module as es_Module +from eos.const import FittingSlot as es_Slot from eos.saveddata.fighter import Fighter as es_Fighter pyfalog = Logger(__name__) diff --git a/service/port/dna.py b/service/port/dna.py index 6181a0d76..8c383fb82 100644 --- a/service/port/dna.py +++ b/service/port/dna.py @@ -28,8 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/efs.py b/service/port/efs.py index 84c8a7001..8d253c621 100755 --- a/service/port/efs.py +++ b/service/port/efs.py @@ -7,11 +7,12 @@ from config import version as pyfaVersion from service.fit import Fit from service.market import Market from eos.enum import Enum -from eos.saveddata.module import FittingHardpoint, FittingSlot, Module, FittingModuleState +from eos.saveddata.module import FittingHardpoint, Module, FittingModuleState from eos.saveddata.drone import Drone from eos.effectHandlerHelpers import HandledList from eos.db import gamedata_session, getCategory, getAttributeInfo, getGroup from eos.gamedata import Attribute, Effect, Group, Item, ItemEffect +from eos.const import FittingSlot from eos.utils.spoolSupport import SpoolType, SpoolOptions from gui.fitCommands.calc.fitAddModule import FitAddModuleCommand from gui.fitCommands.calc.fitRemoveModule import FitRemoveModuleCommand diff --git a/service/port/eft.py b/service/port/eft.py index 43a936529..a16a77a80 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -32,9 +32,10 @@ from eos.saveddata.booster import Booster from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.implant import Implant -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market from service.port.muta import parseMutant, renderMutant @@ -95,7 +96,7 @@ def exportEft(fit, options): rackLines.append('{}{}{}'.format(modName, modOfflineSuffix, mutationSuffix)) else: rackLines.append('[Empty {} slot]'.format( - FittingSlot.getName(slotType).capitalize() if slotType is not None else '')) + FittingSlot(slotType).name.capitalize() if slotType is not None else '')) if rackLines: modSection.append('\n'.join(rackLines)) if modSection: diff --git a/service/port/esi.py b/service/port/esi.py index b1cc8aee7..c9c8ed708 100644 --- a/service/port/esi.py +++ b/service/port/esi.py @@ -28,7 +28,8 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState +from eos.const import FittingSlot from eos.saveddata.ship import Ship from service.fit import Fit as svcFit from service.market import Market diff --git a/service/port/xml.py b/service/port/xml.py index 5f708cc64..7fcb05117 100644 --- a/service/port/xml.py +++ b/service/port/xml.py @@ -28,8 +28,9 @@ from eos.saveddata.citadel import Citadel from eos.saveddata.drone import Drone from eos.saveddata.fighter import Fighter from eos.saveddata.fit import Fit -from eos.saveddata.module import Module, FittingModuleState, FittingSlot +from eos.saveddata.module import Module, FittingModuleState from eos.saveddata.ship import Ship +from eos.const import FittingSlot from service.fit import Fit as svcFit from service.market import Market from utils.strfunctions import sequential_rep, replace_ltgt @@ -278,7 +279,7 @@ def exportXml(iportuser, *fits): hardware = doc.createElement("hardware") hardware.setAttribute("type", module.item.name) - slotName = FittingSlot.getName(slot).lower() + slotName = FittingSlot(slot).name.lower() slotName = slotName if slotName != "high" else "hi" hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId)) fitting.appendChild(hardware)