def save_map(self, map_name=None): """Save the current state of a map Args: map_name: Name of the map to save """ self.editor_gui.current_toolbar.deactivate() if map_name: if map_name in self.maps: game_map = self.maps[map_name] else: return else: if self.current_map: game_map = self.current_map map_name = game_map.name else: return if not isinstance(game_map, GameMap): return fife_map = game_map.fife_map filename = fife_map.getFilename() if not filename: import tkinter.filedialog import tkinter.messagebox # Based on code from unknown-horizons try: filename = tkinter.filedialog.asksaveasfilename( filetypes=[( "fife map", ".xml", )], title="Save Map") except ImportError: # tkinter may be missing5555 filename = "" fife_map.setFilename(filename) try: os.makedirs(os.path.dirname(filename)) except os.error: pass old_dir = os.getcwd() import_list = [ root_subfile(filename, i) for i in self.editor.get_import_list(fife_map.getId()) ] saver = MapSaver() saver.save(fife_map, filename, import_list) os.chdir(old_dir) self.editor_gui.current_toolbar.activate() if map_name in self.changed_maps: self.changed_maps.remove(map_name)
def saveAs(self, filename): """ Saves the map using a specified filename. Emits preSave and postSave signals. """ #create final import list importList = [root_subfile(str(filename), i) for i in self._controller.importList.keys()] events.preSave.send(sender=self, mapview=self) mapSaver = fife.MapSaver(); mapSaver.save(self._map, str(filename), importList); events.postSave.send(sender=self, mapview=self)
def saveAs(self, filename): """ Saves the map using a specified filename. Emits preSave and postSave signals. """ #create final import list importList = [ root_subfile(str(filename), i) for i in self._controller.importList.keys() ] events.preSave.send(sender=self, mapview=self) mapSaver = fife.MapSaver() mapSaver.save(self._map, str(filename), importList) events.postSave.send(sender=self, mapview=self)
def save(self): """ Saves the map using the previous filename. Emits preSave and postSave signals. """ curname = "" try: curname = self._map.getFilename() except RuntimeError: print "Map has no filename yet, can't save." return # create final import list importList = [root_subfile(curname, i) for i in self._controller.importList.keys()] events.preSave.send(sender=self, mapview=self) mapSaver = fife.MapSaver(); mapSaver.save(self._map, curname, importList); events.postSave.send(sender=self, mapview=self)
def save(self): """ Saves the map using the previous filename. Emits preSave and postSave signals. """ curname = "" try: curname = self._map.getFilename() except RuntimeError: print "Map has no filename yet, can't save." return # create final import list importList = [ root_subfile(curname, i) for i in self._controller.importList.keys() ] events.preSave.send(sender=self, mapview=self) mapSaver = fife.MapSaver() mapSaver.save(self._map, curname, importList) events.postSave.send(sender=self, mapview=self)
def save_map(self, map_name=None): """Save the current state of the map Args: map_name: Name of the map to save """ self.editor_gui.current_toolbar.deactivate() if map_name: if map_name in self.maps: game_map = self.maps[map_name] else: return else: if self.current_map: game_map = self.current_map map_name = game_map.name else: return if not isinstance(game_map, GameMap): return map_entities = game_map.entities.copy() for entity in map_entities: agent = getattr(entity, Agent.registered_as) agent.new_map = "" game_map.update_entities_fife() fife_map = game_map.fife_map filename = fife_map.getFilename() if not filename: if self.project_dir is not None: maps_path = self.settings.get( "fife-rpg", "MapsPath", "maps") filename = os.path.join(self.project_dir, maps_path, "%s.xml" % map_name) else: import tkinter.filedialog import tkinter.messagebox # Based on code from unknown-horizons try: filename = tkinter.filedialog.asksaveasfilename( filetypes=[("fife map", ".xml",)], title="Save Map") except ImportError: # tkinter may be missing5555 filename = "" fife_map.setFilename(filename) try: os.makedirs(os.path.dirname(filename)) except os.error: pass old_dir = os.getcwd() if self.project_dir is not None: os.chdir(self.project_dir) import_list = [root_subfile(filename, i) for i in self.editor.get_import_list(fife_map.getId())] saver = MapSaver() saver.save(fife_map, filename, import_list) os.chdir(old_dir) for entity in map_entities: agent = getattr(entity, Agent.registered_as) agent.map = map_name game_map.update_entities() self.update_agents(game_map) self.editor_gui.current_toolbar.activate() if map_name in self.changed_maps: self.changed_maps.remove(map_name)