Esempio n. 1
0
    def getText(self, itmContext, selection):
        sDP = import_DamagePattern.getInstance()
        sFit = Fit.getInstance()
        fitID = self.mainFrame.getActiveFit()
        self.fit = sFit.getFit(fitID)

        self.patterns = sDP.getDamagePatternList()
        self.patterns.sort(
            key=lambda p: (p.name not in ["Uniform", "Selected Ammo"], p.name))

        self.patternIds = {}
        self.subMenus = OrderedDict()
        self.singles = []

        # iterate and separate damage patterns based on "[Parent] Child"
        for pattern in self.patterns:
            start, end = pattern.name.find('['), pattern.name.find(']')
            if start is not -1 and end is not -1:
                currBase = pattern.name[start + 1:end]
                # set helper attr
                setattr(pattern, "_name", pattern.name[end + 1:].strip())
                if currBase not in self.subMenus:
                    self.subMenus[currBase] = []
                self.subMenus[currBase].append(pattern)
            else:
                self.singles.append(pattern)

        # return list of names, with singles first followed by submenu names
        self.m = map(lambda p: p.name, self.singles) + self.subMenus.keys()
        return self.m
Esempio n. 2
0
    def ValuesUpdated(self, event=None):
        if self.block:
            return

        p = self.entityEditor.getActiveEntity()
        total = sum(map(lambda attr: getattr(self, "%sEdit" % attr).GetValue(), self.DAMAGE_TYPES))
        for type_ in self.DAMAGE_TYPES:
                editObj = getattr(self, "%sEdit" % type_)
                percObj = getattr(self, "%sPerc" % type_)
                setattr(p, "%sAmount" % type_, editObj.GetValue())
                percObj.SetLabel("%.1f%%" % (float(editObj.GetValue()) * 100 / total if total > 0 else 0))

        self.totSizer.Layout()

        if event is not None:
            event.Skip()

        DamagePattern.getInstance().saveChanges(p)
Esempio n. 3
0
 def importPatterns(self, event):
     text = fromClipboard()
     if text:
         sDP = DamagePattern.getInstance()
         try:
             sDP.importPatterns(text)
             self.stNotice.SetLabel("Patterns successfully imported from clipboard")
         except ImportError as e:
             self.stNotice.SetLabel(str(e))
         except Exception:
             self.stNotice.SetLabel("Could not import from clipboard: unknown errors")
         finally:
             self.entityEditor.refreshEntityList()
     else:
         self.stNotice.SetLabel("Could not import from clipboard")
Esempio n. 4
0
File: fit.py Progetto: a-tal/Pyfa
    def setAsPattern(self, fitID, ammo):
        if fitID is None:
            return

        sDP = s_DamagePattern.getInstance()
        dp = sDP.getDamagePattern("Selected Ammo")
        if dp is None:
            dp = es_DamagePattern()
            dp.name = "Selected Ammo"

        fit = getFit(fitID)
        for attr in ("em", "thermal", "kinetic", "explosive"):
            setattr(dp, "%sAmount" % attr,
                    ammo.getAttribute("%sDamage" % attr) or 0)

        fit.damagePattern = dp
        self.recalc(fit)
Esempio n. 5
0
 def DoDelete(self, entity):
     sDP = DamagePattern.getInstance()
     sDP.deletePattern(entity)
Esempio n. 6
0
 def DoCopy(self, entity, name):
     sDP = DamagePattern.getInstance()
     copy = sDP.copyPattern(entity)
     sDP.renamePattern(copy, name)
     return copy
Esempio n. 7
0
 def DoRename(self, entity, name):
     sDP = DamagePattern.getInstance()
     sDP.renamePattern(entity, name)
Esempio n. 8
0
 def DoNew(self, name):
     sDP = DamagePattern.getInstance()
     return sDP.newPattern(name)
Esempio n. 9
0
 def getEntitiesFromContext(self):
     sDP = DamagePattern.getInstance()
     choices = sorted(sDP.getDamagePatternList(), key=lambda p: p.name)
     return [c for c in choices if c.name != "Selected Ammo"]
Esempio n. 10
0
 def exportPatterns(self, event):
     sDP = DamagePattern.getInstance()
     toClipboard(sDP.exportPatterns())
     self.stNotice.SetLabel("Patterns exported to clipboard")