def remove(self): self.session.ingame_gui.resource_overview.close_construction_mode() WorldObjectDeleted.unsubscribe(self._on_worldobject_deleted) self._remove_listeners() self._remove_building_instances() self._remove_coloring() self._build_logic.remove(self.session) self._buildable_tiles = None self._transparencified_instances = None self._related_buildings_selected_tiles = None self._related_buildings = None self._highlighted_buildings = None self._build_logic = None self.buildings = None if self.__class__.gui is not None: self.__class__.gui.hide() ExtScheduler().rem_all_classinst_calls(self) SettlementInventoryUpdated.discard(self.update_preview) PlayerInventoryUpdated.discard(self.update_preview) super(BuildingTool, self).remove()