Exemple #1
0
    def end(self):
        self.log.debug("Ending session")
        self.is_alive = False

        self.gui.session = None

        # Has to be done here, cause the manager uses Scheduler!
        self.end_production_finished_icon_manager()
        Scheduler().rem_all_classinst_calls(self)
        ExtScheduler().rem_all_classinst_calls(self)

        if horizons.globals.fife.get_fife_setting("PlaySounds"):
            for emitter in horizons.globals.fife.sound.emitter['ambient'][:]:
                emitter.stop()
                horizons.globals.fife.sound.emitter['ambient'].remove(emitter)
            horizons.globals.fife.sound.emitter['effects'].stop()
            horizons.globals.fife.sound.emitter['speech'].stop()
        if hasattr(self, "cursor"):  # the line below would crash uglily on ^C
            self.cursor.remove()

        if hasattr(self, 'cursor') and self.cursor is not None:
            self.cursor.end()
        # these will call end() if the attribute still exists by the LivingObject magic
        self.ingame_gui = None  # keep this before world

        LastActivePlayerSettlementManager().remove()  # keep after ingame_gui
        LastActivePlayerSettlementManager.destroy_instance()

        self.cursor = None
        self.world.end()  # must be called before the world ref is gone
        self.world = None
        self.keylistener = None
        self.view = None
        self.manager = None
        self.timer = None
        self.scenario_eventhandler = None

        Scheduler().end()
        Scheduler.destroy_instance()

        self.selected_instances = None
        self.selection_groups = None

        self.status_icon_manager.end()
        self.status_icon_manager = None

        horizons.main._modules.session = None
        self._clear_caches()

        # subscriptions shouldn't survive listeners (except the main Gui)
        self.gui.unsubscribe()
        AutosaveIntervalChanged.unsubscribe(self._on_autosave_interval_changed)
        MessageBus().reset()
        self.gui.subscribe()
Exemple #2
0
	def end(self):
		self.log.debug("Ending session")
		self.is_alive = False

		self.gui.session = None

		# Has to be done here, cause the manager uses Scheduler!
		self.end_production_finished_icon_manager()
		Scheduler().rem_all_classinst_calls(self)
		ExtScheduler().rem_all_classinst_calls(self)

		if horizons.globals.fife.get_fife_setting("PlaySounds"):
			for emitter in horizons.globals.fife.sound.emitter['ambient'][:]:
				emitter.stop()
				horizons.globals.fife.sound.emitter['ambient'].remove(emitter)
			horizons.globals.fife.sound.emitter['effects'].stop()
			horizons.globals.fife.sound.emitter['speech'].stop()
		if hasattr(self, "cursor"): # the line below would crash uglily on ^C
			self.cursor.remove()

		if hasattr(self, 'cursor') and self.cursor is not None:
			self.cursor.end()
		# these will call end() if the attribute still exists by the LivingObject magic
		self.ingame_gui = None # keep this before world

		LastActivePlayerSettlementManager().remove() # keep after ingame_gui
		LastActivePlayerSettlementManager.destroy_instance()

		self.cursor = None
		self.world.end() # must be called before the world ref is gone
		self.world = None
		self.keylistener = None
		self.view = None
		self.manager = None
		self.timer = None
		self.scenario_eventhandler = None

		Scheduler().end()
		Scheduler.destroy_instance()

		self.selected_instances = None
		self.selection_groups = None

		self.status_icon_manager.end()
		self.status_icon_manager = None

		horizons.main._modules.session = None
		self._clear_caches()

		# subscriptions shouldn't survive listeners (except the main Gui)
		self.gui.unsubscribe()
		AutosaveIntervalChanged.unsubscribe(self._on_autosave_interval_changed)
		MessageBus().reset()
		self.gui.subscribe()
Exemple #3
0
 def update_autosave_interval(*args):
     AutosaveIntervalChanged.broadcast(None)
Exemple #4
0
 def start(self):
     """Actually starts the game."""
     self.timer.activate()
     self.reset_autosave()
     AutosaveIntervalChanged.subscribe(self._on_autosave_interval_changed)
Exemple #5
0
	def start(self):
		"""Actually starts the game."""
		self.timer.activate()
		self.reset_autosave()
		AutosaveIntervalChanged.subscribe(self._on_autosave_interval_changed)
		def update_autosave_interval(*args):
			AutosaveIntervalChanged.broadcast(None)