Optimize fleet stuff

This commit is contained in:
DarkPhoenix
2011-11-22 17:24:55 +04:00
parent 45795a3bce
commit f916c7ccc9
3 changed files with 25 additions and 22 deletions

2
eos

Submodule eos updated: ff0ffa77ff...6efa234c66

View File

@@ -171,14 +171,20 @@ class Fit(object):
def getFit(self, fitID):
if fitID is None:
return None
fit = eos.db.getFit(fitID)
sFlt = Fleet.getInstance()
if sFlt.isInLinearFleet(fit) is False:
sFlt.removeAssociatedFleetData(fit)
self.recalc(fit)
fit.fill()
eos.db.commit()
inited = getattr(fit, "inited", None)
if inited is None or inited is False:
sFlt = Fleet.getInstance()
f = sFlt.getLinearFleet(fit)
if f is None:
sFlt.removeAssociatedFleetData(fit)
fit.fleet = None
else:
fit.fleet = f
self.recalc(fit)
fit.fill()
eos.db.commit()
fit.inited = True
return fit
def searchFits(self, name):
@@ -645,7 +651,4 @@ class Fit(object):
def recalc(self, fit):
fit.clear()
if fit.fleet is not None:
fit.fleet.recalculateLinear()
else:
fit.calculateModifiedAttributes()
fit.calculateModifiedAttributes()

View File

@@ -83,7 +83,7 @@ class Fleet(object):
def setLinearFleetCom(self, boostee, booster):
if boostee == booster:
return
if self.isInLinearFleet(boostee) is False:
if self.getLinearFleet(boostee) is None:
self.removeAssociatedFleetData(boostee)
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
@@ -97,7 +97,7 @@ class Fleet(object):
def setLinearWingCom(self, boostee, booster):
if boostee == booster:
return
if self.isInLinearFleet(boostee) is False:
if self.getLinearFleet(boostee) is None:
self.removeAssociatedFleetData(boostee)
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
@@ -111,7 +111,7 @@ class Fleet(object):
def setLinearSquadCom(self, boostee, booster):
if boostee == booster:
return
if self.isInLinearFleet(boostee) is False:
if self.getLinearFleet(boostee) is None:
self.removeAssociatedFleetData(boostee)
self.makeLinearFleet(boostee)
squadIDs = set(eos.db.getSquadsIDsWithFitID(boostee.ID))
@@ -122,20 +122,20 @@ class Fleet(object):
else:
self.removeAssociatedFleetData(boostee)
def isInLinearFleet(self, fit):
def getLinearFleet(self, fit):
sqIDs = eos.db.getSquadsIDsWithFitID(fit.ID)
if len(sqIDs) != 1:
return False
return None
s = eos.db.getSquad(sqIDs[0])
if len(s.members) != 1:
return False
return None
w = s.wing
if len(w.squads) != 1:
return False
return None
f = w.gang
if len(f.wings) != 1:
return False
return True
return None
return f
def removeAssociatedFleetData(self, fit):
squadIDs = set(eos.db.getSquadsIDsWithFitID(fit.ID))
@@ -172,7 +172,7 @@ class Fleet(object):
return True
def loadLinearFleet(self, fit):
if self.isInLinearFleet(fit) is False:
if self.getLinearFleet(fit) is None:
return None
squadID = eos.db.getSquadsIDsWithFitID(fit.ID)[0]
s = eos.db.getSquad(squadID)