[Change] Better handling of fleetgroups.

This commit is contained in:
Allanis 2014-11-08 13:43:12 +00:00
parent b5585bfa72
commit 11fab47cbd

View File

@ -25,13 +25,13 @@ class Space:
def loadSystems(self, xmlfile): def loadSystems(self, xmlfile):
self.systems = data.load(xmlfile, "ssys", True, self.systems = data.load(xmlfile, "ssys", True,
["jumps", "planets"], {"fleets":"chance"}, ["jumps","planets","fleets"], None,
{"nebulae":"volatility"}) {"nebulae":"volatility"})
def saveSystems(self, xmlfile): def saveSystems(self, xmlfile):
data.save( "ssys.xml", self.systems, "Systems", "ssys", True, data.save( "ssys.xml", self.systems, "Systems", "ssys", True,
{"jumps":"jump","planets":"planet"}, {"fleets":["fleet","chance"]}, {"jumps":"jump","planets":"planet","fleets":"fleet"}, None,
{"nebulae":"volatility"}) {"nebulae":"volatility"})
def loadPlanets(self, xmlfile): def loadPlanets(self, xmlfile):
@ -359,23 +359,18 @@ class Space:
wgt.set_model(jumps) wgt.set_model(jumps)
# Load fleets. # Load fleets.
fleets = gtk.ListStore(str, int) fleets = gtk.ListStore(str);
for item in system["fleets"]: for fleet in system["fleets"]:
for fleet, chance in item.items(): treenode = fleets.append([fleet])
treenode = fleets.append([fleet, int(chance)])
wgt = self.__swidget("treFleets") wgt = self.__swidget("treFleets")
if wgt.get_column(0): if wgt.get_column(0):
wgt.remove_column(wgt.get_column(0)) wgt.remove_column(wgt.get_column(0))
wgt.remove_column(wgt.get_column(0))
columns = [None]*2
columns[0] = gtk.TreeViewColumn('Fleet')
columns[1] = gtk.TreeViewColumn('Chance')
for n in range(2):
wgt.append_column(columns[n])
columns[n].cell = gtk.CellRendererText()
columns[n].pack_start(columns[n].cell, True)
columns[n].set_attributes(columns[n].cell, text = n)
col = gtk.TreeViewColumn('Fleet')
cell = gtk.CellRenderText()
wgt.append_column(col)
col.pack_start(cell, True)
col.add_attribute(cell, 'text', 0)
wgt.set_model(fleets) wgt.set_model(fleets)
self.__space_draw() self.__space_draw()
@ -790,23 +785,21 @@ class Space:
iter = tree.get_selection().get_selected()[1] iter = tree.get_selection().get_selected()[1]
except: except:
return "" return ""
return model.get_value(iter, 0), mode.get_value(iter, 1) return model.get_value(iter, 0)
def __fleet_add(self, wgt=None, event=None): def __fleet_add(self, wgt=None, event=None):
fleet = self.__swidget("comFleets").get_active_text() fleet = self.__swidget("comFleets").get_active_text()
value = self.__swidget("spiFleets").get_value_as_int() if fleet != 'None':
if fleet != "None" and value > 0: self.systems[self.cur_system]["fleets"].append(fleet)
self.systems[self.cur_system]["fleets"].append({fleet:str(value)})
self.__supdate() self.__supdate()
def __fleet_rm(self, wgt=None, event=None): def __fleet_rm(self, wgt=None, event=None):
sel, chance = self.__fleet_sel() sel = self.__fleet_sel()
if sel is "": if sel is "":
return return
i = 0 i = 0
for item in self.systems[self.cur_system]["fleets"]: for fleet in self.systems[self.cur_system]["fleets"]:
for key, value in item.items(): if fleet == sel:
if key == sel and value == str(chance):
self.systems[self.cur_system]["fleets"].pop(i) self.systems[self.cur_system]["fleets"].pop(i)
self.__supdate() self.__supdate()
return return