diff --git a/service/port/eft.py b/service/port/eft.py index fc8576d01..83f066f66 100644 --- a/service/port/eft.py +++ b/service/port/eft.py @@ -32,9 +32,9 @@ from eos.saveddata.implant import Implant from eos.saveddata.module import Module, State, Slot from eos.saveddata.ship import Ship from eos.saveddata.fit import Fit -from gui.utils.numberFormatter import roundToPrec from service.fit import Fit as svcFit from service.market import Market +from service.port.muta import exportMutant from service.port.shared import IPortUser, processing_notify from enum import Enum @@ -157,17 +157,7 @@ def exportEft(fit, options): if mutants and options & Options.MUTATIONS.value: for mutantReference in sorted(mutants): mutant = mutants[mutantReference] - mutatedAttrs = {} - for attrID, mutator in mutant.mutators.items(): - attrName = getAttributeInfo(attrID).name - mutatedAttrs[attrName] = mutator.value - mutationLines.append('[{}] {}'.format(mutantReference, mutant.baseItem.name)) - mutationLines.append(' {}'.format(mutant.mutaplasmid.item.name)) - # Round to 7th significant number to avoid exporting float errors - customAttrsLine = ', '.join( - '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) - for a in sorted(mutatedAttrs)) - mutationLines.append(' {}'.format(customAttrsLine)) + mutationLines.append(exportMutant(mutant, firstPrefix='[{}] '.format(mutantReference), prefix=' ')) if mutationLines: sections.append('\n'.join(mutationLines)) diff --git a/service/port/muta.py b/service/port/muta.py new file mode 100644 index 000000000..df0519c6e --- /dev/null +++ b/service/port/muta.py @@ -0,0 +1,38 @@ +# ============================================================================= +# Copyright (C) 2014 Ryan Holmes +# +# 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 eos.db.gamedata.queries import getAttributeInfo +from gui.utils.numberFormatter import roundToPrec + + +def exportMutant(mutant, firstPrefix='', prefix=''): + exportLines = [] + mutatedAttrs = {} + for attrID, mutator in mutant.mutators.items(): + attrName = getAttributeInfo(attrID).name + mutatedAttrs[attrName] = mutator.value + exportLines.append('{}{}'.format(firstPrefix, mutant.baseItem.name)) + exportLines.append('{}{}'.format(prefix, mutant.mutaplasmid.item.name)) + # Round to 7th significant number to avoid exporting float errors + customAttrsLine = ', '.join( + '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + for a in sorted(mutatedAttrs)) + exportLines.append('{}{}'.format(prefix, customAttrsLine)) + return '\n'.join(exportLines)