Improvements to fit initializations and logging

This commit is contained in:
blitzmann
2015-07-05 12:57:04 -04:00
parent 7959593c6c
commit 3773d1c28e
2 changed files with 25 additions and 26 deletions

View File

@@ -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):

View File

@@ -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