Ejemplo n.º 1
0
def standalone_error_popup(headline, msg):
	"""Display an error via gui.
	Use only for errors that make 'import horizons.main' fail."""
	from fife.extensions import pychan
	from fife import fife

	e = fife.Engine()
	e.getSettings().setDefaultFontPath("content/fonts/LinLibertine.ttf")
	e.init()

	pychan.init(e)
	pychan.loadFonts("content/fonts/libertine.fontdef")

	# hack for accessing this in do_quit (global does't work as the variables here are local)
	class Quit(object):
		do = False

	def do_quit():
		Quit.do=True

	dlg = pychan.loadXML("content/gui/xml/startup_error_popup.xml")
	# can't translate as translations are only set up later
	dlg.findChild(name="headline").text = headline
	dlg.findChild(name="msg").text = msg
	dlg.mapEvents({'quit_button': do_quit})
	dlg.show()


	e.initializePumping()
	while not Quit.do:
		e.pump()
	e.finalizePumping()
Ejemplo n.º 2
0
    def __init__(self, setting=None):
        if setting:
            self._setting = setting
        else:
            self._setting = Setting(app_name="",
                                    settings_file="./settings.xml",
                                    settings_gui_xml="")

        self.engine = fife.Engine()

        self.initLogging()
        self.loadSettings()

        self.engine.init()
        """
		we are giving users a valid screen resolution option that is supported
		"""
        screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes()
        resolutions = list(
            set([(mode.getWidth(), mode.getHeight())
                 for mode in screen_modes]))

        resolutions = [
            "{0}x{1}".format(item[0], item[1])
            for item in sorted(resolutions)[1:]
        ]
        self._setting.setValidResolutions(resolutions)

        pychan.init(self.engine, debug=self._finalSetting['PychanDebug'])
        pychan.setupModalExecution(self.mainLoop, self.breakFromMainLoop)

        self.quitRequested = False
        self.breakRequested = False
        self.returnValues = []
Ejemplo n.º 3
0
	def __init__(self, setting=None):
		if setting:
			self._setting = setting
		else:
			self._setting =  Setting(app_name="", settings_file="./settings.xml", settings_gui_xml="")

		self.engine = fife.Engine()
		
		self.initLogging()
		self.loadSettings()	
		
		self.engine.init()
		
		"""
		we are giving users a valid screen resolution option that is supported
		"""
		screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes() 
		resolutions = list(set([(mode.getWidth(), mode.getHeight())
		for mode in screen_modes]))
		
		resolutions = ["{0}x{1}".format(item[0], item[1]) for item in sorted(resolutions)[1:]] 
		self._setting.setValidResolutions(resolutions)

		pychan.init(self.engine, debug = self._finalSetting['PychanDebug'])
		pychan.setupModalExecution(self.mainLoop,self.breakFromMainLoop)

		self.quitRequested = False
		self.breakRequested = False
		self.returnValues = []
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
	def __init__(self, app, engine, setting):
		"""
		__init__ Function
		Starts an instance of the World class
		
		Keyword Arguments
		app - A pointer to the main application
		engine - A pointer to fife.engine
		setting - A pointer to a fife settings XML file
		"""
		super(World, self).__init__(engine, regKeys=True, regCmd=False, regMouse=True)

		# Throw values into their variables
		self._applictaion = app
		self._engine = engine
		self._setting = setting
		self._timemanager = engine.getTimeManager()
		self._eventmanager = engine.getEventManager()
		self._model = engine.getModel()
		self._filename = ''
		self._keystate = { 'UP': False, 
		                   'DOWN': False, 
		                   'LEFT': False, 
		                   'RIGHT': False, 
		                   'CTRL': False, 
		                   'SPACE': False,
				   'Q': False,
				   'E': False,}
		self._cameras = {}
		self._npcs = {}
		self._npclist = None
		self._pump_ctr = 0
		self._map = None
		self._scene = None
		self._paused = True
		self._pausedtime = 0
		self._starttime = 0
		self._gamestate = 'NONE'
		self._quit = False
		self._player = None
		self._eventtracker = None
		self._objects = {}
		self._contextmenu = contextmenu.ContextMenu('rightclickmenu', self)
		self._mouseMoved = False
		
		# Start pychan
		pychan.init(self._engine)
		
		# Set all GUI types to empty
		self._hud = None
		self._mainmenu = None
		self._pausemenu = None
		self._loadingmenu = None
		self._settingsmenu = None
		self._aboutmenu = None
		
		# Start the sound manager
		self._soundmanager = SoundManager(self._engine)
		self._sounds = musicmanager.MusicManager(self._engine, self._soundmanager, self._timemanager)
    def __init__(self, setting=None):
        if setting:
            self._setting = setting
        else:
            self._setting = Setting(app_name="", settings_file="./settings.xml", settings_gui_xml="")

        self.engine = fife.Engine()

        self.loadSettings()
        self.initLogging()

        self.engine.init()

        self._animationloader = XMLAnimationLoader(self.engine.getImagePool(), self.engine.getVFS())
        self.engine.getAnimationPool().addResourceLoader(self._animationloader)

        pychan.init(self.engine, debug=self._setting.get("FIFE", "PychanDebug", False))
        pychan.setupModalExecution(self.mainLoop, self.breakFromMainLoop)

        self.quitRequested = False
        self.breakRequested = False
        self.returnValues = []
Ejemplo n.º 7
0
    def __init__(self, setting=None):
        super(PychanApplicationBase, self).__init__(setting)

        pychan.init(self.engine, debug=self._finalSetting['PychanDebug'])
        pychan.setupModalExecution(self.mainLoop, self.breakFromMainLoop)
Ejemplo n.º 8
0
	def __init__(self,xmlfile):
		super(TestXMLApplication,self).__init__()
		pychan.init(self.engine,debug=True)
		self.start()
	def __init__(self, setting=None):
		super(PychanApplicationBase, self).__init__(setting)
		
		pychan.init(self.engine, debug = self._finalSetting['PychanDebug'])
		pychan.setupModalExecution(self.mainLoop,self.breakFromMainLoop)