comparison mamba/habitats/editor.py @ 270:3c95ba7408f1

Add protected level name list. Add load & new buttons
author Neil Muller <drnlmuller@gmail.com>
date Thu, 15 Sep 2011 13:25:00 +0200
parents 1e8dca95c48a
children a061dd62127c
comparison
equal deleted inserted replaced
269:adaaea7a8fef 270:3c95ba7408f1
10 #from mamba.widgets.messagebox import MessageBox 10 #from mamba.widgets.messagebox import MessageBox
11 from mamba.widgets.entrybox import EntryBox 11 from mamba.widgets.entrybox import EntryBox
12 from mamba.widgets.toollist import ToolListWidget 12 from mamba.widgets.toollist import ToolListWidget
13 from mamba.level import Level, TILE_MAP, THING_MAP 13 from mamba.level import Level, TILE_MAP, THING_MAP
14 from mamba.data import check_level_exists 14 from mamba.data import check_level_exists
15 from mamba.constants import SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS 15 from mamba.constants import (SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS,
16 RESERVED_NAMES)
16 17
17 MAX_TOOLS = 8 18 MAX_TOOLS = 6
18 19
19 20
20 class EditorHabitat(Habitat): 21 class EditorHabitat(Habitat):
21 def __init__(self, level_name): 22 def __init__(self, level_name):
22 super(EditorHabitat, self).__init__(EDIT_SCREEN) 23 super(EditorHabitat, self).__init__(EDIT_SCREEN)
128 mode_button.add_callback('clicked', self.change_toolbar) 129 mode_button.add_callback('clicked', self.change_toolbar)
129 self.container.add(mode_button) 130 self.container.add(mode_button)
130 button_height += mode_button.surface.get_height() + button_padding 131 button_height += mode_button.surface.get_height() + button_padding
131 button_height += 2 132 button_height += 2
132 133
133 save_button = TextButton((button_left, button_height), "Save Level") 134 new = TextButton((button_left, button_height), "New")
134 save_button.add_callback('clicked', self.save) 135 new.add_callback('clicked', self.new)
135 self.container.add(save_button) 136 self.container.add(new)
137 load = TextButton((button_left + 60, button_height), "Load")
138 load.add_callback('clicked', self.load)
139 self.container.add(load)
140
141 save = TextButton((button_left + 120, button_height), "Save")
142 save.add_callback('clicked', self.save)
143 self.container.add(save)
136 144
137 def change_tool(self, ev, widget, new_tool, text): 145 def change_tool(self, ev, widget, new_tool, text):
138 self.edit_widget.set_tool(new_tool) 146 self.edit_widget.set_tool(new_tool)
139 self.current_tool.text = 'Tool: %s' % text 147 self.current_tool.text = 'Tool: %s' % text
140 self.current_tool.prepare() 148 self.current_tool.prepare()
141 149
142 def save(self, ev, widget): 150 def save(self, ev, widget):
151 if self.level.level_name in RESERVED_NAMES:
152 print "Can't save over reserved name"
153 return
143 self.level.save_level() 154 self.level.save_level()
155
156 def new(self, ev, widget):
157 pass
158
159 def load(self, ev, widget):
160 pass
144 161
145 def change_toolbar(self, ev, widget): 162 def change_toolbar(self, ev, widget):
146 if self.mode == 'Tile': 163 if self.mode == 'Tile':
147 self.mode = 'Thing' 164 self.mode = 'Thing'
148 elif self.mode == 'Thing': 165 elif self.mode == 'Thing':