def _remove_building_instances(self): """Deletes fife instances of buildings""" try: self._class.get_component_template(SelectableComponent.NAME) except KeyError: pass else: deselected_tiles = SelectableBuildingComponent.deselect_building(self.session) # redraw buildables (removal of selection might have tampered with it) self.highlight_buildable(deselected_tiles) for inst_weakref in self._modified_instances: fife_instance = inst_weakref() if fife_instance: # remove everything that might have been added, we don't keep track of the single changes self.renderer.removeOutlined(fife_instance) self.renderer.removeColored(fife_instance) if not hasattr(fife_instance, "keep_translucency") or not fife_instance.keep_translucency: fife_instance.get2dGfxVisual().setTransparency(0) for building in self._related_buildings: # restore selection, removeOutline can destroy it building.get_component(SelectableComponent).set_selection_outline() self._modified_instances.clear() for fife_instance in self.buildings_fife_instances.itervalues(): layer = fife_instance.getLocationRef().getLayer() # layer might not exist, happens for some reason after a build if layer is not None: layer.deleteInstance(fife_instance)
def _remove_building_instances(self): """Deletes fife instances of buildings""" try: self._class.get_component_template(SelectableComponent.NAME) except KeyError: pass else: deselected_tiles = SelectableBuildingComponent.deselect_building(self.session) # redraw buildables (removal of selection might have tampered with it) self.highlight_buildable(deselected_tiles) self._restore_modified_instances() for building in self._related_buildings: # restore selection, removeOutline can destroy it building.get_component(SelectableComponent).set_selection_outline() for fife_instance in self.buildings_fife_instances.itervalues(): layer = fife_instance.getLocationRef().getLayer() # layer might not exist, happens for some reason after a build if layer is not None: layer.deleteInstance(fife_instance) self.buildings_fife_instances = {}