[Add] Initial code for resource editor.
This commit is contained in:
parent
21d25a5585
commit
17e5164ab4
41
utils/resedit/data.py
Normal file
41
utils/resedit/data.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from xml.dom import minidom
|
||||||
|
|
||||||
|
def load(xmlfile, tag, has_name=True, do_array=None):
|
||||||
|
dom = minidom.parse(xmlfile)
|
||||||
|
xmlNodes = dom.getElementsByTagName(tag)
|
||||||
|
|
||||||
|
dictionary = {}
|
||||||
|
for xmlNode in xmlNodes:
|
||||||
|
mdic = {}
|
||||||
|
# Name is stored as a property and not a node.
|
||||||
|
if(has_name):
|
||||||
|
name = xmlNode.attributes["name"].value
|
||||||
|
|
||||||
|
# Process the nodes.
|
||||||
|
for bignode in filter(lambda x: x.nodeType==x.ELEMENT_NODE, xmlNode.childNodes):
|
||||||
|
# Load the nodes.
|
||||||
|
section = {}
|
||||||
|
array = []
|
||||||
|
for node in filter(lambda x: x.nodeType==x.ELEMENT_NODE,
|
||||||
|
bignode.childNodes):
|
||||||
|
if bignode.nodeName in do_array: # Big ugly hack to use list instead of array.
|
||||||
|
array.append(node.firstChild.data)
|
||||||
|
else: # Normal way (but will overwrite lists).
|
||||||
|
section[node.nodeName] = node.firstChild.data
|
||||||
|
|
||||||
|
if len(array) > 0:
|
||||||
|
mdic[bignode.nodeName] = array
|
||||||
|
else:
|
||||||
|
mdic[bignode.nodeName] = section
|
||||||
|
|
||||||
|
# Append the element to the dictionary.
|
||||||
|
dictionary[name] = mdic
|
||||||
|
|
||||||
|
dom.unlink()
|
||||||
|
return dictionary
|
||||||
|
|
||||||
|
def save(xmlfile, basetag, tag, has_name=True):
|
||||||
|
print "TODO"
|
||||||
|
|
BIN
utils/resedit/data.pyc
Normal file
BIN
utils/resedit/data.pyc
Normal file
Binary file not shown.
11
utils/resedit/resedit.py
Executable file
11
utils/resedit/resedit.py
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import space
|
||||||
|
|
||||||
|
# Load the universe.
|
||||||
|
universe = space.space()
|
||||||
|
universe.loadSystems("../../dat/ssys.xml")
|
||||||
|
universe.loadPlanets("../../dat/planet.xml")
|
||||||
|
universe.debug()
|
||||||
|
universe.window()
|
||||||
|
|
360
utils/resedit/space.glade
Normal file
360
utils/resedit/space.glade
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
|
||||||
|
<!--Generated with glade3 3.4.1 on Thu Feb 7 11:50:56 2008 -->
|
||||||
|
<glade-interface>
|
||||||
|
<widget class="GtkWindow" id="winSystems">
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="title" translatable="yes">Systems</property>
|
||||||
|
<property name="default_width">600</property>
|
||||||
|
<property name="default_height">420</property>
|
||||||
|
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="vbox1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHPaned" id="hpaned1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkTreeView" id="treSystems">
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="headers_clickable">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="resize">False</property>
|
||||||
|
<property name="shrink">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLayout" id="layout1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label1">
|
||||||
|
<property name="width_request">67</property>
|
||||||
|
<property name="height_request">31</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Name:</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">31</property>
|
||||||
|
<property name="y">26</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkEntry" id="inpName">
|
||||||
|
<property name="width_request">134</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="truncate_multiline">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">95</property>
|
||||||
|
<property name="y">31</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="labPos">
|
||||||
|
<property name="width_request">65</property>
|
||||||
|
<property name="height_request">25</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">X,Y</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">242</property>
|
||||||
|
<property name="y">28</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="butRepos">
|
||||||
|
<property name="width_request">75</property>
|
||||||
|
<property name="height_request">33</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Reposition</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">319</property>
|
||||||
|
<property name="y">23</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label2">
|
||||||
|
<property name="width_request">103</property>
|
||||||
|
<property name="height_request">28</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Interference</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">19</property>
|
||||||
|
<property name="y">75</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHSeparator" id="hseparator1">
|
||||||
|
<property name="width_request">402</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">6</property>
|
||||||
|
<property name="y">55</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkSpinButton" id="spiInterference">
|
||||||
|
<property name="width_request">74</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="adjustment">0 0 100 1 10 10</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">117</property>
|
||||||
|
<property name="y">79</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label3">
|
||||||
|
<property name="width_request">75</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Asteroids</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">29</property>
|
||||||
|
<property name="y">114</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkSpinButton" id="spiAsteroids">
|
||||||
|
<property name="width_request">72</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="adjustment">0 0 100 1 10 10</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">119</property>
|
||||||
|
<property name="y">113</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label4">
|
||||||
|
<property name="width_request">68</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Stars</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">32</property>
|
||||||
|
<property name="y">144</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkSpinButton" id="spiStars">
|
||||||
|
<property name="width_request">73</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="adjustment">0 0 100 1 10 10</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">120</property>
|
||||||
|
<property name="y">143</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVSeparator" id="vseparator1">
|
||||||
|
<property name="width_request">20</property>
|
||||||
|
<property name="height_request">259</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">202</property>
|
||||||
|
<property name="y">72</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkDrawingArea" id="draSpace">
|
||||||
|
<property name="width_request">180</property>
|
||||||
|
<property name="height_request">171</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">221</property>
|
||||||
|
<property name="y">88</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHSeparator" id="hseparator2">
|
||||||
|
<property name="width_request">204</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">5</property>
|
||||||
|
<property name="y">169</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkTreeView" id="treJumps">
|
||||||
|
<property name="width_request">193</property>
|
||||||
|
<property name="height_request">86</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="headers_clickable">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">10</property>
|
||||||
|
<property name="y">205</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="butAddJump">
|
||||||
|
<property name="width_request">70</property>
|
||||||
|
<property name="height_request">27</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Add</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">25</property>
|
||||||
|
<property name="y">298</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="butRmJump">
|
||||||
|
<property name="width_request">70</property>
|
||||||
|
<property name="height_request">29</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Delete</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">121</property>
|
||||||
|
<property name="y">298</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label5">
|
||||||
|
<property name="width_request">126</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Jumps</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">44</property>
|
||||||
|
<property name="y">184</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="labSpace">
|
||||||
|
<property name="width_request">100</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Space</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">263</property>
|
||||||
|
<property name="y">69</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHSeparator" id="hseparator3">
|
||||||
|
<property name="width_request">190</property>
|
||||||
|
<property name="height_request">20</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">218</property>
|
||||||
|
<property name="y">265</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="butSave">
|
||||||
|
<property name="width_request">87</property>
|
||||||
|
<property name="height_request">38</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Save</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">227</property>
|
||||||
|
<property name="y">290</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkButton" id="butDone">
|
||||||
|
<property name="width_request">83</property>
|
||||||
|
<property name="height_request">41</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="label" translatable="yes">Done</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="x">322</property>
|
||||||
|
<property name="y">288</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="resize">True</property>
|
||||||
|
<property name="shrink">False</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkStatusbar" id="staBottom">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||||
|
<property name="spacing">2</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</glade-interface>
|
132
utils/resedit/space.py
Normal file
132
utils/resedit/space.py
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
try:
|
||||||
|
import gtk,gtk.glade
|
||||||
|
import gobject
|
||||||
|
except:
|
||||||
|
print "You do not have python gtk bindings, or you're missing glade libs"
|
||||||
|
print "To use Lephisto's resedit you must install them"
|
||||||
|
print "http://pygtk.org/ "
|
||||||
|
raise SystemExit
|
||||||
|
|
||||||
|
import data
|
||||||
|
|
||||||
|
class space:
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.glade = "space.glade"
|
||||||
|
self.systemsXML = "../../dat/ssys.xml"
|
||||||
|
self.planetsXML = "../../dat/planet.xml"
|
||||||
|
self.loadSystems(self.systemsXML)
|
||||||
|
self.loadPlanets(self.planetsXML)
|
||||||
|
|
||||||
|
def loadSystems(self, xmlfile):
|
||||||
|
self.systems = data.load(xmlfile, "ssys", True, ["jumps","fleets","planets"])
|
||||||
|
|
||||||
|
|
||||||
|
def saveSystems(self, xmlfile):
|
||||||
|
print "TODO"
|
||||||
|
|
||||||
|
|
||||||
|
def loadPlanets(self, xmlfile):
|
||||||
|
self.planets = data.load(xmlfile, "planet", True, ["commodities"])
|
||||||
|
|
||||||
|
|
||||||
|
def savePlanets(self, xmlfile):
|
||||||
|
print "TODO"
|
||||||
|
|
||||||
|
|
||||||
|
def window(self):
|
||||||
|
"""
|
||||||
|
create the window
|
||||||
|
"""
|
||||||
|
# --------------- SYSTEMS --------------------
|
||||||
|
self.swtree = gtk.glade.XML(self.glade, "winSystems")
|
||||||
|
|
||||||
|
# Hook events and stuff.
|
||||||
|
self.__swidget("winSystems").connect("destroy", self.__done)
|
||||||
|
self.__swidget("butDone").connect("clicked", self.__done)
|
||||||
|
self.__swidget("treSystems").connect("row-activated", self.__update)
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
# Display the window and such.
|
||||||
|
self.__swidget("winSystems").show_all()
|
||||||
|
|
||||||
|
# ---------------- PLANETS --------------------
|
||||||
|
|
||||||
|
# ---------------------------------------------
|
||||||
|
gtk.main()
|
||||||
|
|
||||||
|
|
||||||
|
def __swidget(self,wgtname):
|
||||||
|
"""
|
||||||
|
get a widget from the winSystems
|
||||||
|
"""
|
||||||
|
return self.swtree.get_widget(wgtname)
|
||||||
|
|
||||||
|
|
||||||
|
def __update(self, wgt=None, foo=None, bar=None):
|
||||||
|
"""
|
||||||
|
Update the window
|
||||||
|
"""
|
||||||
|
# Important thingies.
|
||||||
|
tree = self.__swidget("treSystems")
|
||||||
|
model = tree.get_model()
|
||||||
|
|
||||||
|
# Get system.
|
||||||
|
sel = model.iter_nth_child(None, foo[0])
|
||||||
|
sys_name = model.get_value( sel, 0 )
|
||||||
|
system = self.systems[sys_name]
|
||||||
|
|
||||||
|
# Load it all.
|
||||||
|
dic = {
|
||||||
|
"inpName":sys_name,
|
||||||
|
"spiInterference":system["general"]["interference"],
|
||||||
|
"spiAsteroids":system["general"]["asteroids"],
|
||||||
|
"spiStars":system["general"]["stars"],
|
||||||
|
"labPos":"%s,%s" % (system["pos"]["x"],system["pos"]["y"])
|
||||||
|
}
|
||||||
|
for key, value in dic.items():
|
||||||
|
self.__swidget(key).set_text(value)
|
||||||
|
|
||||||
|
# Load jumps.
|
||||||
|
|
||||||
|
jumps = gtk.ListStore(str)
|
||||||
|
for jump in system["jumps"]: # Load the planets.
|
||||||
|
treenode = jumps.append([jump])
|
||||||
|
col = gtk.TreeViewColumn('Jumps')
|
||||||
|
cell = gtk.CellRendererText()
|
||||||
|
wgt = self.__swidget("treJumps")
|
||||||
|
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(jumps)
|
||||||
|
|
||||||
|
def __done(self, widget=None, data=None):
|
||||||
|
"""
|
||||||
|
Window is done
|
||||||
|
"""
|
||||||
|
gtk.main_quit()
|
||||||
|
|
||||||
|
def debug(self):
|
||||||
|
print "SYSTEMS LOADED:"
|
||||||
|
print self.systems
|
||||||
|
print
|
||||||
|
print
|
||||||
|
print "PLANETS LOADED:"
|
||||||
|
print self.planets
|
||||||
|
|
BIN
utils/resedit/space.pyc
Normal file
BIN
utils/resedit/space.pyc
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user