Implant and cargo conversions

This commit is contained in:
blitzmann
2018-07-27 23:54:41 -04:00
parent b724e5bec1
commit dd430bc9bb
13 changed files with 164 additions and 28 deletions

View File

@@ -6,4 +6,6 @@ from .moduleSwapOrClone import GuiModuleSwapOrCloneCommand
from .guiRemoveCargo import GuiRemoveCargoCommand
from .guiAddCargo import GuiAddCargoCommand
from .fitAddCargo import FitAddCargoCommand
from .fitRemoveCargo import FitRemoveCargoCommand
from .fitRemoveCargo import FitRemoveCargoCommand
from .guiRemoveImplant import GuiRemoveImplantCommand
from .guiAddImplant import GuiAddImplantCommand

View File

@@ -0,0 +1,41 @@
import wx
from service.fit import Fit
import gui.mainFrame
from gui import globalEvents as GE
#from .helpers import ModuleInfoCache
from eos.saveddata.module import Module, State
import eos.db
from logbook import Logger
pyfalog = Logger(__name__)
from eos.saveddata.implant import Implant
class FitAddImplantCommand(wx.Command):
""""
from sFit.addImplant
"""
def __init__(self, fitID, itemID):
wx.Command.__init__(self, True, "Cargo add")
self.fitID = fitID
self.itemID = itemID
def Do(self):
pyfalog.debug("Adding implant to fit ({0}) for item ID: {1}", self.fitID, self.itemID)
fit = eos.db.getFit(self.fitID)
item = eos.db.getItem(self.itemID, eager="attributes")
try:
implant = Implant(item)
except ValueError:
pyfalog.warning("Invalid item: {0}", self.itemID)
return False
fit.implants.append(implant)
self.new_index = fit.implants.index(implant)
return True
def Undo(self):
from .fitRemoveImplant import FitRemoveImplantCommand # Avoid circular import
cmd = FitRemoveImplantCommand(self.fitID, self.new_index)
cmd.Do()
return True

View File

@@ -0,0 +1,38 @@
import wx
from service.fit import Fit
import gui.mainFrame
from gui import globalEvents as GE
#from .helpers import ModuleInfoCache
from eos.saveddata.module import Module, State
import eos.db
from logbook import Logger
pyfalog = Logger(__name__)
class FitRemoveImplantCommand(wx.Command):
""""
Fitting command that sets the amount for an item within the cargo.
from sFit.removeImplant
"""
def __init__(self, fitID, position):
wx.Command.__init__(self, True, "Implant remove")
self.fitID = fitID
self.position = position
self.old_implant = None
def Do(self):
pyfalog.debug("Removing implant from position ({0}) for fit ID: {1}", self.position, self.fitID)
fit = eos.db.getFit(self.fitID)
implant = fit.implants[self.position]
self.old_implant = implant.itemID
fit.implants.remove(implant)
return True
def Undo(self):
from .fitAddImplant import FitAddImplantCommand # Avoid circular import
cmd = FitAddImplantCommand(self.fitID, self.old_implant)
cmd.Do()
return True

View File

@@ -6,14 +6,14 @@ from gui import globalEvents as GE
from .fitAddCargo import FitAddCargoCommand
class GuiAddCargoCommand(wx.Command):
def __init__(self, fitID, itemID):
def __init__(self, fitID, itemID, amount=1, replace=False):
wx.Command.__init__(self, True, "Cargo Add")
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.sFit = Fit.getInstance()
self.internal_history = wx.CommandProcessor()
self.fitID = fitID
# can set his up no to not have to set variables on our object
self.cmd = FitAddCargoCommand(fitID, itemID)
self.cmd = FitAddCargoCommand(fitID, itemID, amount, replace)
def Do(self):
if self.internal_history.Submit(self.cmd):

View File

@@ -0,0 +1,29 @@
import wx
from service.fit import Fit
import gui.mainFrame
from gui import globalEvents as GE
from .fitAddImplant import FitAddImplantCommand
class GuiAddImplantCommand(wx.Command):
def __init__(self, fitID, itemID):
wx.Command.__init__(self, True, "Implant Add")
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.sFit = Fit.getInstance()
self.internal_history = wx.CommandProcessor()
self.fitID = fitID
# can set his up no to not have to set variables on our object
self.cmd = FitAddImplantCommand(fitID, itemID)
def Do(self):
if self.internal_history.Submit(self.cmd):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID))
return True
return False
def Undo(self):
for x in self.internal_history.Commands:
self.internal_history.Undo()
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID))
return True

View File

@@ -0,0 +1,29 @@
import wx
from service.fit import Fit
import gui.mainFrame
from gui import globalEvents as GE
from .fitRemoveImplant import FitRemoveImplantCommand
class GuiRemoveImplantCommand(wx.Command):
def __init__(self, fitID, position):
wx.Command.__init__(self, True, "")
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.sFit = Fit.getInstance()
self.internal_history = wx.CommandProcessor()
self.fitID = fitID
# can set his up no to not have to set variables on our object
self.cmd = FitRemoveImplantCommand(fitID, position)
def Do(self):
if self.internal_history.Submit(self.cmd):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID))
return True
return False
def Undo(self):
for x in self.internal_history.Commands:
self.internal_history.Undo()
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.fitID))
return True