[Add] Preliminary new system support.

This commit is contained in:
Allanis 2013-04-13 21:23:32 +01:00
parent f14246c578
commit 740386f7a5
2 changed files with 38 additions and 23 deletions

View File

@ -53,23 +53,13 @@ class space:
"butZoomOut":["clicked", self.__space_zoomout], "butZoomOut":["clicked", self.__space_zoomout],
"butReset":["clicked", self.__space_reset], "butReset":["clicked", self.__space_reset],
"butAddJump":["clicked", self.__jump_add], "butAddJump":["clicked", self.__jump_add],
"butRmJump":["clicked", self.__jump_rm] "butRmJump":["clicked", self.__jump_rm],
"butNew":["clicked", self.__new]
} }
for key, val in hooks.items(): for key, val in hooks.items():
self.__swidget(key).connect(val[0], val[1]) self.__swidget(key).connect(val[0], val[1])
# Populate the tree. self.__create_treSystems()
self.tree_systems = gtk.TreeStore(str)
for system in self.systems: # Load the planets.
treenode = self.tree_systems.append(None, [system])
for planet in self.systems[system]['planets']:
self.tree_systems.append(treenode, [planet])
col = gtk.TreeViewColumn('Systems')
cell = gtk.CellRendererText()
self.__swidget("treSystems").append_column(col)
col.pack_start(cell, True)
col.add_attribute(cell, 'text', 0)
self.__swidget("treSystems").set_model(self.tree_systems)
# Custom widget drawing area thingy. # Custom widget drawing area thingy.
self.zoom = 1 self.zoom = 1
@ -95,6 +85,19 @@ class space:
# --------------------------------------------- # ---------------------------------------------
gtk.main() gtk.main()
def __create_treSystems(self):
# Populate the tree.
self.tree_systems = gtk.TreeStore(str)
for system in self.systems: # Load the planets.
treenode = self.tree_systems.append(None, [system])
for planet in self.systems[system]['planets']:
self.tree_systems.append(treenode, [planet])
col = gtk.TreeViewColumn('Systems')
cell = gtk.CellRendererText()
self.__swidget("treSystems").append_column(col)
col.pack_start(cell, True)
col.add_attribute(cell, 'text', 0)
self.__swidget("treSystems").set_model(self.tree_systems)
def __swidget(self,wgtname): def __swidget(self,wgtname):
""" """
@ -102,7 +105,6 @@ class space:
""" """
return self.swtree.get_widget(wgtname) return self.swtree.get_widget(wgtname)
def __update(self, wgt=None, index=None, iter=None): def __update(self, wgt=None, index=None, iter=None):
""" """
Update the window Update the window
@ -125,7 +127,7 @@ class space:
"labPos":"%s,%s" % (system["pos"]["x"],system["pos"]["y"]) "labPos":"%s,%s" % (system["pos"]["x"],system["pos"]["y"])
} }
for key, value in dic.items(): for key, value in dic.items():
self.__swidget(key).set_text(value) self.__swidget(key).set_text(str(value))
# Load jumps. # Load jumps.
@ -245,13 +247,7 @@ class space:
if abs(sx-mx) < r and abs(sy-my) < r: if abs(sx-mx) < r and abs(sy-my) < r:
if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS: if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS:
tree = self.__swidget("treSystems") tree = self.__swidget("treSystems")
i = 0 self.__selfSys(name)
for row in tree.get_model():
if row[0] == name:
tree.set_cursor(i)
self.__update()
break
i = i + 1
elif event.button == 1: elif event.button == 1:
self.space_sel = name self.space_sel = name
self.__space_draw() self.__space_draw()
@ -380,6 +376,25 @@ class space:
self.__update() self.__update()
self.__space_draw() self.__space_draw()
def __new(self, wgt=None, event=None):
name = "untitled"
gen = { "asteroids":0, "interference":0, "stars":100 }
pos = { "x":0, "y":0 }
new_ssys = { "general":gen, "pos":pos, "jumps":[], "fleets":[], "planets":[] }
self.systems[name] = new_ssys
self.__create_treSystems()
self.__selSys(name)
def __selSys(self, system):
i = 0
tree = self.__swidget("treSystems")
for row in tree.get_model():
if row[0] == system:
tree.set_cursor(i)
self.__update()
break
i = i+1
def debug(self): def debug(self):
print "SYSTEMS LOADED:" print "SYSTEMS LOADED:"
print self.systems print self.systems

Binary file not shown.