source: trunk/demo/settings.py @ 26

Revision 26, 1.4 KB checked in by maximinus_parpg, 11 years ago (diff)

Added maximinus's demo code, possibly a start for PARPG

You'll need to copy this directory so it's at /fife/clients/demo
Execute ./run.py to test it

Heavily modified the Rio client by removing and simplifying as much code
as possible.
Added GPL3 texts.
Added current PARPG gfx from forums.
Modified XML files.
Changed directory structure for graphic files.
Started with the EpyDoc? strings.
You won't be impressed :-/ ... but it's a start

Line 
1import shutil
2
3try:
4        import xml.etree.cElementTree as ET
5except:
6        import xml.etree.ElementTree as ET
7
8class Setting(object):
9        def setDefaults(self):
10                shutil.copyfile('settings-dist.xml', 'settings.xml')
11                self.isSetToDefault = True
12                self.changesRequireRestart = True
13
14        def readSetting(self, name, type='int', strip=True, text=False):
15                if not hasattr(self, 'tree'):
16                        self.tree = ET.parse('settings.xml')
17                        self.root_element = self.tree.getroot()
18                element = self.root_element.find(name)
19                if element is not None:
20                        element_value = element.text
21                        if element_value is None:
22                                if type == 'int':
23                                        return 0
24                                elif type == 'list':
25                                        list = []
26                                        return list
27                        else:
28                                if type == 'int':
29                                        return element_value.strip() if strip else element_value
30                                elif type == 'list':
31                                        list = []
32                                        list_s = []
33                                        list = str(element_value.strip()).split(";")
34                                        for item in list:
35                                                item = item.strip()
36                                                if text:
37                                                        item = item.replace('\\n', '\n')
38                                                list_s.append(item)
39                                        return list_s
40                                elif type == 'bool':
41                                        return False if element_value.strip() == 'False' else True
42                else:
43                        print 'Setting,', name, 'does not exist!'
44
45        def setSetting(self, name, value):
46                element = self.root_element.find(name)
47                if element is not None:
48                        if value is not element.text:
49                                element.text = str(value)
50                else:
51                        print 'Setting,', name, 'does not exist!'
52
Note: See TracBrowser for help on using the repository browser.