Improvements to fit initializations and logging
This commit is contained in:
@@ -29,6 +29,9 @@ from eos.saveddata.module import State
|
||||
from eos.saveddata.mode import Mode
|
||||
import eos.db
|
||||
import time
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
from collections import OrderedDict
|
||||
@@ -53,7 +56,6 @@ class Fit(object):
|
||||
# use @mode.setter's to set __attr and IDs. This will set mode as well
|
||||
self.ship = ship
|
||||
|
||||
self.__invalid = False
|
||||
self.__modules = HandledModuleList()
|
||||
self.__drones = HandledDroneCargoList()
|
||||
self.__cargo = HandledDroneCargoList()
|
||||
@@ -77,20 +79,23 @@ class Fit(object):
|
||||
"""Initialize a fit from the database and validate"""
|
||||
self.__ship = None
|
||||
self.__mode = None
|
||||
self.__invalid = False
|
||||
|
||||
if self.shipID:
|
||||
# if item does not exist, set invalid
|
||||
item = eos.db.getItem(self.shipID)
|
||||
if item is None or item.category.name != "Ship":
|
||||
self.__invalid = True
|
||||
else:
|
||||
if item is None:
|
||||
logger.error("Item (id: %d) does not exist", self.shipID)
|
||||
return
|
||||
|
||||
try:
|
||||
self.__ship = Ship(item)
|
||||
except ValueError:
|
||||
logger.error("Item (id: %d) is not a Ship", self.shipID)
|
||||
return
|
||||
|
||||
if self.modeID and self.__ship:
|
||||
item = eos.db.getItem(self.modeID)
|
||||
# Don't need to verify if it's a proper item, as checkModeItem assures this
|
||||
self.__mode = self.ship.checkModeItem(item)
|
||||
# Don't need to verify if it's a proper item, as validateModeItem assures this
|
||||
self.__mode = self.ship.validateModeItem(item)
|
||||
|
||||
self.build()
|
||||
|
||||
@@ -144,7 +149,7 @@ class Fit(object):
|
||||
|
||||
@property
|
||||
def isInvalid(self):
|
||||
return self.__invalid
|
||||
return self.__ship is None
|
||||
|
||||
@property
|
||||
def mode(self):
|
||||
@@ -172,7 +177,7 @@ class Fit(object):
|
||||
self.__ship = ship
|
||||
self.shipID = ship.item.ID if ship is not None else None
|
||||
# set mode of new ship
|
||||
self.mode = self.ship.checkModeItem(None) if ship is not None else None
|
||||
self.mode = self.ship.validateModeItem(None) if ship is not None else None
|
||||
|
||||
@property
|
||||
def drones(self):
|
||||
|
||||
@@ -21,6 +21,9 @@ from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut
|
||||
from eos.effectHandlerHelpers import HandledItem
|
||||
from eos.saveddata.mode import Mode
|
||||
import eos.db
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class Ship(ItemAttrShortcut, HandledItem):
|
||||
def __init__(self, item):
|
||||
@@ -53,25 +56,16 @@ class Ship(ItemAttrShortcut, HandledItem):
|
||||
if effect.runTime == runTime and effect.isType("passive"):
|
||||
effect.handler(fit, self, ("ship",))
|
||||
|
||||
def checkModeItem(self, item):
|
||||
"""
|
||||
Checks if provided item is a valid mode.
|
||||
|
||||
If ship has modes, and current item is not valid, return forced mode
|
||||
else if mode is valid, return Mode
|
||||
else if ship does not have modes, return None
|
||||
|
||||
@todo: rename this
|
||||
"""
|
||||
def validateModeItem(self, item):
|
||||
""" Checks if provided item is a valid mode """
|
||||
items = self.__modeItems
|
||||
|
||||
if items != None:
|
||||
if item == None or item not in items:
|
||||
# We have a tact dessy, but mode is None or not valid. Force new mode
|
||||
if items is not None:
|
||||
# if we have items, then we are in a tactical destroyer and must have a mode
|
||||
if item is None or item not in items:
|
||||
# If provided item is invalid mode, force new one
|
||||
return Mode(items[0])
|
||||
elif item in items:
|
||||
# We have a valid mode
|
||||
return Mode(item)
|
||||
return Mode(item)
|
||||
return None
|
||||
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user