def run(self): """ Starts the application """ self.screen = pygame.display.set_mode((800, 600), pygame.SWSURFACE) self.gui = MainWindow(self, self.base_path, self.surface_manager) menu = StartMenu(self, self.surface_manager) self.gui.connect(pgu.gui.QUIT, self.gui.quit, None) self.gui.run(menu, screen = self.screen)
class Application(object): """ This class represents main application """ def __init__(self): super(Application, self).__init__() self.config = None self.gui = None self.world = None self.running = 1 self.base_path = None self.logger = None self.screen = None self.log_level = None def process_command_line(self): """ Process command line options """ log_levels = {'debug': logging.DEBUG, 'info': logging.INFO, 'warning': logging.WARNING, 'error': logging.ERROR, 'critical': logging.CRITICAL} args = sys.argv for argument in args: if argument in log_levels: self.log_level = log_levels[argument] def load_configuration(self): """ Load configuration """ self.world = Model() self.config = Configuration(self.base_path, self.world) self.config.initialise(herculeum.config.levels) def run(self): """ Starts the application """ self.screen = pygame.display.set_mode((800, 600), pygame.SWSURFACE) self.gui = MainWindow(self, self.base_path, self.surface_manager) menu = StartMenu(self, self.surface_manager) self.gui.connect(pgu.gui.QUIT, self.gui.quit, None) self.gui.run(menu, screen = self.screen) def __get_surface_manager(self): """ Get surface manager """ return self.config.surface_manager def start_logging(self): """ Start logging for the system """ logging.basicConfig(filename='pyherc.log', level=self.log_level) self.logger = logging.getLogger('pyherc.main.Application') self.logger.info("Logging started") def change_state(self, state): """ Change state of the gui Args: state: String specifying which state to display """ self.gui.change_state(state) def __get_action_factory(self): """ Get action factory instance Returns: ActionFactory """ return self.config.action_factory def __get_creature_generator(self): """ Get creature generator Returns: CreatureGenerator """ return self.config.creature_generator def __get_item_generator(self): """ Get item generator Returns: ItemGenerator """ return self.config.item_generator def __get_level_generator_factory(self): """ Get level generator factory """ return self.config.level_generator_factory def __get_rng(self): """ Get random number generator """ return self.config.rng def detect_resource_directory(self): """ Detects location of resources directory and updates self.base_path """ search_directory = '.' current = os.path.normpath(os.path.join(os.getcwd(), search_directory)) while not os.path.exists(os.path.join(current, 'resources')): search_directory = search_directory +'/..' current = os.path.normpath(os.path.join(os.getcwd(), search_directory)) self.base_path = os.path.join(current, 'resources') surface_manager = property(__get_surface_manager) action_factory = property(__get_action_factory) creature_generator = property(__get_creature_generator) item_generator = property(__get_item_generator) level_generator_factory = property(__get_level_generator_factory) rng = property(__get_rng)