def __init__(self, setting): """Initialise the instance. @return: None""" super(PARPGApplication, self).__init__(setting) pychan.init(self.engine, debug = True) #self.engine.getModel(self) self.model = GameModel(self.engine, setting) self.model.maps_file = self._setting.get("PARPG", "MapsFile") self.model.readMapFiles() self.model.object_db_file = self._setting.get("PARPG", "ObjectDatabaseFile") self.model.readObjectDB() self.model.agents_directory = self._setting.get("PARPG", "AgentsDirectory") self.model.getAgentImportFiles() self.model.all_agents_file = self._setting.get("PARPG", "AllAgentsFile") self.model.readAllAgents() self.model.dialogues_directory = self._setting.get("PARPG", "DialoguesDirectory") self.model.getDialogues() self.view = MainMenuView(self.engine, self.model) self.event_listener = EventListener(self.engine) self.controllers = [] controller = MainMenuController(self.engine, self.view, self.model, self) #controller.initHud() self.controllers.append(controller) self.listener = ApplicationListener(self.event_listener, self.engine, self.view, self.model)
class PARPGApplication(ApplicationBase): """Main Application class We use an MVC model model self.gamesceneview is our view,self.model is our model self.controller is the controller""" def __init__(self, setting): """Initialise the instance. @return: None""" super(PARPGApplication, self).__init__(setting) pychan.init(self.engine, debug = True) #self.engine.getModel(self) self.model = GameModel(self.engine, setting) self.model.maps_file = self._setting.get("PARPG", "MapsFile") self.model.readMapFiles() self.model.object_db_file = self._setting.get("PARPG", "ObjectDatabaseFile") self.model.readObjectDB() self.model.agents_directory = self._setting.get("PARPG", "AgentsDirectory") self.model.getAgentImportFiles() self.model.all_agents_file = self._setting.get("PARPG", "AllAgentsFile") self.model.readAllAgents() self.model.dialogues_directory = self._setting.get("PARPG", "DialoguesDirectory") self.model.getDialogues() self.view = MainMenuView(self.engine, self.model) self.event_listener = EventListener(self.engine) self.controllers = [] controller = MainMenuController(self.engine, self.view, self.model, self) #controller.initHud() self.controllers.append(controller) self.listener = ApplicationListener(self.event_listener, self.engine, self.view, self.model) #start_map = self._setting.get("PARPG", "Map") #self.model.changeMap(start_map) def createListener(self): """@return: None""" # already created in constructor # but if we don't put one here, Fife gets all fussy :-) pass def pushController(self, controller): """Adds a controller to the list to be the current active one.""" self.controllers[-1].pause(True) self.controllers.append(controller) def popController(self): """Removes and returns the current active controller, unless its the last one""" ret_controller = None if self.controllers.count > 1: ret_controller = self.controllers.pop() self.controllers[-1].pause(False) ret_controller.onStop() return ret_controller def switchController(self, controller): """Clears the controller list and adds a controller to be the current active one""" for old_controller in self.controllers: old_controller.onStop() self.controllers = [] self.controllers.append(controller) def _pump(self): """Main game loop. There are in fact 2 main loops, this one and the one in GameSceneView. @return: None""" if self.listener.quit: self.breakRequested = True #pylint: disable-msg=C0103 else: for controller in self.controllers: controller.pump()