[Add] <resedit> hacked together chance for multiple fleets with differenct chance of the same type.

This commit is contained in:
Allanis 2013-06-19 21:55:13 +01:00
parent 39578da94d
commit a0fe785fe2
2 changed files with 29 additions and 18 deletions

View File

@ -33,11 +33,12 @@ def load_Tag(node, do_array=None, do_special=None):
i = 0 i = 0
# Figure out if we need an array or dic. # Figure out if we need an array or dic.
if do_array != None and node.nodeName in do_array: array = []
array = [] section = {}
if(do_array != None and node.nodeName in do_array) or \
(do_special != None and node.nodeName in do_special):
use_array = True use_array = True
else: else:
section = {}
use_array = False use_array = False
for child in filter(lambda x: x.nodeType == x.ELEMENT_NODE, node.childNodes): for child in filter(lambda x: x.nodeType == x.ELEMENT_NODE, node.childNodes):
@ -50,13 +51,14 @@ def load_Tag(node, do_array=None, do_special=None):
section[child.nodeName] = children section[child.nodeName] = children
# Big ugly hack to use list instead of array. # Big ugly hack to use list instead of array.
elif use_array: elif use_array and node.nodeName in do_array:
array.append(child.firstChild.data) array.append(child.firstChild.data)
# Uglier hack for special things. # Uglier hack for special things.
elif do_special != None and node.nodeName in do_special.keys(): elif use_array and do_special != None and node.nodeName in do_special.keys():
section[child.firstChild.data] = \ section[child.firstChild.data] = \
child.attributes[do_special[node.nodeName]].value child.attributes[do_special[node.nodeName]].value
array.append(section)
elif n > 0: elif n > 0:
section[child.nodeName] = children section[child.nodeName] = children
@ -111,12 +113,14 @@ def save_Tag(xml, parent, data, do_array=None, do_special=None):
# Check see if we need to run the ULTRA UBER HACK! # Check see if we need to run the ULTRA UBER HACK!
elif do_special != None and key in do_special.keys(): elif do_special != None and key in do_special.keys():
for key2, value2 in value.items(): for item in value:
node2 = xml.createElement(do_special[key][0]) for key2, value2 in item.items(): # Should only be one member.
node2.setAttribute(do_special[key][1], value2) node2 = xml.createElement(do_special[key][0])
txtnode = xml.createTextNode(str(key2)) node2.setAttribute(do_special[key][1], value2)
node2.appendChild(txtnode) txtnode = xml.createTextNode(str(key2))
node.appendChild(node2) node2.appendChild(txtnode)
node.appendChild(node2)
elif isinstance(value, dict): elif isinstance(value, dict):
save_Tag(xml, node, value, do_array, do_special) save_Tag(xml, node, value, do_array, do_special)

View File

@ -241,8 +241,9 @@ class Space:
# Load fleets. # Load fleets.
fleets = gtk.ListStore(str, int) fleets = gtk.ListStore(str, int)
for fleet, chance in system["fleets"].items(): for item in system["fleets"]:
treenode = fleets.append([fleet, int(chance)]) for fleet, chance in item.items():
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))
@ -644,20 +645,26 @@ 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) return model.get_value(iter, 0), mode.get_value(iter, 1)
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() value = self.__swidget("spiFleets").get_value_as_int()
if fleet != "None" and value > 0: if fleet != "None" and value > 0:
self.systems[self.cur_system]["fleets"][fleet] = str(value) 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 = self.__fleet_sel() sel, chance = self.__fleet_sel()
if sel is "": if sel is "":
return return
del self.systems[self.cur_system]["fleets"][sel] i = 0
for item in self.systems[self.cur_system]["fleets"]:
for key, value in item.items():
if key == sel and value == chance:
self.systems[self.cur_system]["fleets"].pop(i)
i = i+1
print self.systems[self.cur_system]["fleets"]
self.__supdate() self.__supdate()
""" """