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