diff --git a/utils/resedit/space.glade b/utils/resedit/space.glade index e21763d..cfeed96 100644 --- a/utils/resedit/space.glade +++ b/utils/resedit/space.glade @@ -5,7 +5,7 @@ 750 450 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Systems + System Editor GDK_WINDOW_TYPE_HINT_DIALOG @@ -422,8 +422,9 @@ 600 - 450 + 500 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Planet Editor True @@ -490,8 +491,8 @@ - 129 - 29 + 182 + 24 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK @@ -520,22 +521,22 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 11 - 94 + 12 + 173 188 - 166 + 149 True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True - 16 - 116 + 17 + 196 @@ -547,7 +548,7 @@ 15 - 287 + 350 @@ -562,8 +563,8 @@ 0 - 15 - 318 + 16 + 380 @@ -579,19 +580,19 @@ 115 - 316 + 380 20 - 255 + 171 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 209 - 110 + 194 @@ -602,8 +603,8 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 7 - 360 + 6 + 419 @@ -615,8 +616,8 @@ Services - 232 - 115 + 254 + 194 @@ -632,7 +633,7 @@ 240 - 145 + 215 @@ -648,7 +649,7 @@ 320 - 145 + 215 @@ -664,7 +665,7 @@ 240 - 170 + 235 @@ -680,7 +681,7 @@ 240 - 195 + 255 @@ -696,7 +697,7 @@ 320 - 195 + 255 @@ -707,8 +708,8 @@ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 221 - 217 + 219 + 274 @@ -720,8 +721,8 @@ Tech - 246 - 238 + 260 + 293 @@ -734,12 +735,12 @@ 222 - 260 + 320 - - 72 + + 58 20 True True @@ -747,8 +748,8 @@ 0 0 100000 1 10 10 - 272 - 260 + 300 + 320 @@ -760,8 +761,8 @@ Special - 225 - 290 + 224 + 345 @@ -775,7 +776,7 @@ 235 - 315 + 365 @@ -789,7 +790,7 @@ 300 - 315 + 365 @@ -803,7 +804,7 @@ 235 - 340 + 390 @@ -817,19 +818,19 @@ 300 - 340 + 390 160 - 25 + 23 True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 - 400 + 465 @@ -841,7 +842,7 @@ System - 378 + 440 @@ -856,8 +857,8 @@ 0 - 190 - 377 + 189 + 438 @@ -869,8 +870,82 @@ Class - 227 - 60 + 289 + 20 + + + + + 152 + 122 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-missing-image + + + 260 + 48 + + + + + 79 + 33 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + 341 + 9 + + + + + 101 + 20 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GFX Space + + + 92 + + + + + 163 + 24 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + 96 + 89 + + + + + 98 + 20 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GFX Exterior + + + 10 + 123 + + + + + 154 + 22 + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + 106 + 120 @@ -883,4 +958,3 @@ - diff --git a/utils/resedit/space.py b/utils/resedit/space.py index 13039a2..a382860 100644 --- a/utils/resedit/space.py +++ b/utils/resedit/space.py @@ -17,6 +17,7 @@ class Space: self.glade = "space.glade" self.systemsXML = "../../dat/ssys.xml" self.planetsXML = "../../dat/planet.xml" + self.planet_gfx = "../../gfx/planet/" self.loadSystems(self.systemsXML) self.loadPlanets(self.planetsXML) @@ -66,7 +67,7 @@ class Space: "butReset":["clicked", self.__space_reset], "butAddJump":["clicked", self.__jump_add], "butRmJump":["clicked", self.__jump_rm], - "butNew":["clicked", self.__new] + "butNew":["clicked", self.__snew] } for key, val in hooks.items(): self.__swidget(key).connect(val[0], val[1]) @@ -99,6 +100,29 @@ class Space: self.__pwidget("winPlanets").show_all() self.cur_planet = "" + # Hooks. + hooks = { + "butNew":["clicked", self.__pnew], + "trePlanets":["button-release-event", self.__pupdate] + } + for key, val in hooks.items(): + self.__pwidget(key).connect(val[0], val[1]) + + # Planet tree. + self.__create_trePlanets() + + # Classes. + classes = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", + "M", "O", "P", "Q", "R", "S", "T", "X", "Y", "Z", "0", "1"] + wgt = self.__pwidget("comClass") + combo = gtk.ListStore(str) + for a in classes: + node = combo.append(a) + cell = gtk.CellRendererText() + wgt.pack_start(cell, True) + wgt.add_attribute(cell, "text", 0) + wgt.set_model(combo) + # --------------------------------------------- gtk.main() @@ -119,6 +143,22 @@ class Space: col.add_attribute(cell, 'text', 0) wgt.set_model(self.tree_systems) + def __create_trePlanets(self): + # Population. + wgt = self.__pwidget("trePlanets") + self.tree_planets = gtk.TreeStore(str) + for planet in self.planets: + treenode = self.tree_planets.append(None, [planet]) + col = gtk.TreeViewColumn('Planets') + cell = gtk.CellRendererText() + if wgt.get_column(0): + wgt.remove_column(wgt.get_column(0)) + wgt.append_column(col) + col.pack_start(cell, True) + col.add_attribute(cell, 'text', 0) + wgt.set_model(self.tree_planets) + + def __swidget(self,wgtname): """ get a widget from the winSystems @@ -180,6 +220,48 @@ class Space: return planet = self.planets[self.cur_planet] + dic = { + "inpName":self.cur_planet + } + + for key, value in dic.items(): + self.__pwidget(key).set_text(str(value)) + + # Class. + cls = planet["general"]["class"] + i = 0 + wgt = self.__pwidget("comClass") + model = wgt.get_model() + for row in model: + if row[0] == cls: + wgt.set_active_iter(model.get_iter(i)) + i = i + 1 + + # Tech. + try: + self.__pwidget("spiTech0").set_text(str(planet["general"]["tech"]["main"])) + except: + self.__pwidget("spiTech0").set_text(str(0)) + + # Services. + services = int(planet["general"]["services"]) + serv = { + "cheLand":2**0, + "cheBasic":2**1, + "cheCommodity":2**2, + "cheOutfits":2**3, + "cheShipyard":2**4, + } + + for s, m in serv.items(): + if services & m > 0: + self.__pwidget(s).set_active(True) + else: + self.__pwidget(s).set_active(False) + + self.__pwidget("imaPlanet").set_from_file(self.planet_gfx + "space/" + + planet["GFX"]["space"]) + def __sstore(self): sys_name = self.__swidget("inpName").get_text() if sys_name == "": @@ -220,6 +302,43 @@ class Space: self.__sinpStore(system, "spiInterference", "general", "interference") self.__sinpStore(system, "spiAsteroids", "general", "asteroids") + def __pstore(self): + planet_name = self.__swidget("inpName").get_text() + if planet_name == "": + return + + if planet_name != self.cur_planet: + self.planets[planet_name] = self.planets[self.cur_planet] + model = self.__pwidget("trePlanets").get_model() + + for i in model: + if i[0] == self.cur_planet: + i[0] = planet_name + break + + del self.planets[self.cur_planet] + self.cur_planet = planet_name + + try: + planet = self.planets[self.cur_planet] + except: + return + + # Get the service. + services = 0 + serv = { + "cheLand":2**0, + "cheBasic":2**1, + "cheCommodity":2**2, + "cheOutfits":2**3, + "cheShipyard":2**4 + } + + for s, m in serv.items(): + if self.__pwidget(s).get_active(): + services = services + m + planet["general"]["services"] = services + def __sinpStore(self, system, wgt, tag, minortag=None): text = self.__swidget(wgt).get_text() if minortag==None: @@ -427,8 +546,8 @@ class Space: self.__supdate() self.__space_draw() - def __new(self, wgt=None, event=None): - name = "untitled" + def __snew(self, wgt=None, event=None): + name = "new system" gen = { "asteroids":0, "interference":0, "stars":100 } pos = { "x":0, "y":0 } new_ssys = { "general":gen, "pos":pos, "jumps":[], "fleets":{}, "planets":[] } @@ -436,6 +555,16 @@ class Space: self.__create_treSystems() self.__selSys(name) + def __pnew(self, wgt=None, event=None): + name = "new planet" + gfx = { "space":"none.png" } + gen = { "class":"A", "services":0, "GFX":gfx } + pos = { "x":0, "y":0 } + new_planet = { "general":gen, "pos":pos } + self.planets[name] = new_planet + self.__create_trePlanets() + self.__selPlanet(name) + def __selSys(self, system): i = 0 tree = self.__swidget("treSystems") diff --git a/utils/resedit/space.pyc b/utils/resedit/space.pyc index f3fb022..91ca966 100644 Binary files a/utils/resedit/space.pyc and b/utils/resedit/space.pyc differ