Add support for implants & boosters as well

This commit is contained in:
DarkPhoenix
2022-02-05 01:25:15 +03:00
parent be73ffd929
commit aa1ecd6bea
4 changed files with 31 additions and 10 deletions

View File

@@ -42,8 +42,8 @@ class ItemParams(wx.Panel):
self.toggleView = AttributeView.NORMAL
self.stuff = stuff
self.item = item
self.isStuffItem = stuff is not None and getattr(stuff, 'item') == item
self.isStuffCharge = stuff is not None and getattr(stuff, 'charge') == item
self.isStuffItem = stuff is not None and item is not None and getattr(stuff, 'item', None) == item
self.isStuffCharge = stuff is not None and item is not None and getattr(stuff, 'charge', None) == item
self.attrInfo = {}
self.attrValues = {}
self._fetchValues()
@@ -297,9 +297,9 @@ class ItemParams(wx.Panel):
valDefault = getattr(info, "value", None) # Get default value from attribute
if self.stuff is not None:
# if it's a stuff, overwrite default (with fallback to current value)
if self.stuff.item == self.item:
if self.isStuffItem:
valDefault = self.stuff.getItemBaseAttrValue(attr, valDefault)
elif self.stuff.charge == self.item:
elif self.isStuffCharge:
valDefault = self.stuff.getChargeBaseAttrValue(attr, valDefault)
valueDefault = valDefault if valDefault is not None else att

View File

@@ -16,6 +16,7 @@ class GuiChangeBoosterMetaCommand(wx.Command):
self.fitID = fitID
self.position = position
self.newItemID = newItemID
self.newPosition = None
def Do(self):
sFit = Fit.getInstance()
@@ -31,15 +32,24 @@ class GuiChangeBoosterMetaCommand(wx.Command):
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
eos.db.commit()
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
self.newPosition = cmd.newPosition
newBooster = fit.boosters[self.newPosition]
mainFrame = gui.mainFrame.MainFrame.getInstance()
wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,)))
wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=booster, new=newBooster))
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
oldBooster = fit.boosters[self.newPosition]
success = self.internalHistory.undoAll()
eos.db.flush()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
eos.db.commit()
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
newBooster = fit.boosters[self.position]
mainFrame = gui.mainFrame.MainFrame.getInstance()
wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,)))
wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=oldBooster, new=newBooster))
return success

View File

@@ -16,6 +16,7 @@ class GuiChangeImplantMetaCommand(wx.Command):
self.fitID = fitID
self.position = position
self.newItemID = newItemID
self.newPosition = None
def Do(self):
sFit = Fit.getInstance()
@@ -31,15 +32,25 @@ class GuiChangeImplantMetaCommand(wx.Command):
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
eos.db.commit()
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
self.newPosition = cmd.newPosition
newImplant = fit.implants[self.newPosition]
mainFrame = gui.mainFrame.MainFrame.getInstance()
wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,)))
wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=implant, new=newImplant))
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
oldImplant = fit.implants[self.newPosition]
success = self.internalHistory.undoAll()
eos.db.flush()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
eos.db.commit()
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
newImplant = fit.implants[self.position]
mainFrame = gui.mainFrame.MainFrame.getInstance()
wx.PostEvent(mainFrame, GE.FitChanged(fitIDs=(self.fitID,)))
wx.PostEvent(mainFrame, GE.ItemChangedInplace(old=oldImplant, new=newImplant))
return success

View File

@@ -63,7 +63,7 @@ class GuiChangeLocalModuleMetasCommand(wx.Command):
oldMod = oldModMap.get(position)
newMod = newModMap.get(position)
if oldMod is not newMod:
events.append(GE.ItemChangedInplace(fitID=self.fitID, old=oldMod, new=newMod))
events.append(GE.ItemChangedInplace(old=oldMod, new=newMod))
for event in events:
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), event)
return success