Beispiel #1
0
 def reset(self):
     if not self.AKUReady: return
     self.cleanLuaReferences()
     self.initContext()
     self.setWorkingDirectory(self.getProject().getPath())
     signals.emitNow('moai.reset')
     signals.emitNow('moai.ready')
Beispiel #2
0
	def saveScene( self ):
		if not self.activeSceneNode: return
		self.markSceneDirty( False )
		signals.emitNow( 'scene.save' )
		self.delegate.safeCallMethod( 'editor', 'saveScene', self.activeSceneNode.getAbsFilePath() )
		signals.emitNow( 'scene.saved' )
		self.saveWorkspaceState()
Beispiel #3
0
	def openScene( self, node, protoNode = None ):
		if self.activeSceneNode == node:			
			if self.getModule('scene_view'):
				self.getModule('scene_view').setFocus()

			if protoNode:
				self.delegate.safeCallMethod( 'editor', 'locateProto', protoNode.getPath() )
				if self.getModule('scene_view'):
					self.getModule('scene_view').focusSelection()
				
		else:
			if not self.closeScene(): return
			if self.getModule('scene_view'):
				self.getModule('scene_view').makeCanvasCurrent()
			self.activeSceneNode = node
			signals.emitNow( 'scene.pre_open', node )
			scene = self.delegate.safeCallMethod( 'editor', 'openScene', node.getPath() )
			if not scene:
				#todo: raise something
				alertMessage( 'error', 
					'%s\n\nfailed to open scene, see console for detailed information.' % node.getPath() )
				return False
			signals.emitNow( 'scene.open', self.activeSceneNode, scene )
			self.setFocus()
			self.editingProtoNode = protoNode		
			self.loadWorkspaceState( False )
			self.delegate.safeCallMethod( 'editor', 'postOpenScene' )
Beispiel #4
0
    def openScene(self, node, protoNode=None):
        if self.activeSceneNode == node:
            if self.getModule('scene_view'):
                self.getModule('scene_view').setFocus()

            if protoNode:
                self.delegate.safeCallMethod('editor', 'locateProto',
                                             protoNode.getPath())
                if self.getModule('scene_view'):
                    self.getModule('scene_view').focusSelection()

        else:
            if not self.closeScene(): return
            if self.getModule('scene_view'):
                self.getModule('scene_view').makeCanvasCurrent()
            self.activeSceneNode = node
            signals.emitNow('scene.pre_open', node)
            scene = self.delegate.safeCallMethod('editor', 'openScene',
                                                 node.getPath())
            if not scene:
                #todo: raise something
                alertMessage(
                    'error',
                    '%s\n\nfailed to open scene, see console for detailed information.'
                    % node.getPath())
                return False
            signals.emitNow('scene.open', self.activeSceneNode, scene)
            self.setFocus()
            self.editingProtoNode = protoNode
            self.loadWorkspaceState(False)
            self.delegate.safeCallMethod('editor', 'postOpenScene')
Beispiel #5
0
    def stopPreview(self):
        if not self.running: return
        # self.canvas.makeCurrentCanvas()

        logging.info('stop game preview')
        self.canvas.setInputDevice(None)
        self.canvas.interceptShortcut = False
        jhook = self.getModule('joystick_hook')
        if jhook: jhook.setInputDevice(None)

        self.getApp().resetMainLoopBudget()

        signals.emitNow('preview.stop')
        self.updateTimer.stop()
        self.enableMenu('main/preview/stop_game', False)
        self.enableMenu('main/preview/pause_game', False)
        self.enableMenu('main/preview/start_game', True)

        self.window.setWindowTitle('Game Preview')
        self.qtool.setStyleSheet('QToolBar{ border-top: none; }')

        self.running = False
        self.paused = False

        self.updateTimer = None
        self.canvas.startRefreshTimer(self.nonActiveFPS)
        logging.info('game preview stopped')
Beispiel #6
0
 def saveScene(self):
     if not self.activeSceneNode: return
     self.markSceneDirty(False)
     signals.emitNow('scene.save')
     self.delegate.safeCallMethod('editor', 'saveScene',
                                  self.activeSceneNode.getAbsFilePath())
     signals.emitNow('scene.saved')
     self.saveWorkspaceState()
Beispiel #7
0
	def closeScene( self ):
		if not self.activeSceneNode: return True
		if self.sceneDirty:
			res = requestConfirm( 'scene modified!', 'save scene before close?' )
			if res == True:   #save
				self.saveScene()
			elif res == None: #cancel
				return
			elif res == False: #no save
				pass

		self.markSceneDirty( False )
		self.tree.clear()
		self.getApp().clearCommandStack( 'scene_editor' )
		self.getSelectionManager().removeSelection( self.getActiveScene() )
		signals.emitNow( 'scene.close', self.activeSceneNode )
		self.delegate.safeCallMethod( 'editor', 'closeScene' )		
		self.activeSceneNode = None
		return True
Beispiel #8
0
    def closeScene(self):
        if not self.activeSceneNode: return True
        if self.sceneDirty:
            res = requestConfirm('scene modified!', 'save scene before close?')
            if res == True:  #save
                self.saveScene()
            elif res == None:  #cancel
                return
            elif res == False:  #no save
                pass

        self.markSceneDirty(False)
        self.tree.clear()
        self.getApp().clearCommandStack('scene_editor')
        self.getSelectionManager().removeSelection(self.getActiveScene())
        signals.emitNow('scene.close', self.activeSceneNode)
        self.delegate.safeCallMethod('editor', 'closeScene')
        self.activeSceneNode = None
        return True
Beispiel #9
0
    def cleanLuaReferences(self):
        logging.info('clean lua reference')
        #clear lua module
        for m in self.luaModules:
            unregisterModule(m)

        bridge.clearSignalConnections()
        bridge.clearLuaRegisteredSignals()
        #clear lua object inside introspector
        introspector = self.getModule('introspector')
        if introspector:
            instances = introspector.getInstances()
            for ins in instances:
                if isinstance(
                        ins.target,
                    (_LuaTable, _LuaObject, _LuaThread, _LuaFunction)):
                    ins.clear()

        signals.emitNow('moai.clean')
Beispiel #10
0
	def pausePreview( self ):
		if self.paused: return
		self.canvas.setInputDevice( None )
		jhook = self.getModule( 'joystick_hook' )
		if jhook: jhook.setInputDevice( None )

		self.getApp().resetMainLoopBudget()

		signals.emitNow( 'preview.pause' )
		logging.info('pause game preview')
		self.enableMenu( 'main/preview/start_game', True )
		self.enableMenu( 'main/preview/pause_game',  False )
		
		self.window.setWindowTitle( 'Game Preview[ Paused ]')
		self.qtool.setStyleSheet('QToolBar{ border-top: 1px solid rgb(255, 0, 0); }')

		self.paused = True
		self.getRuntime().pause()
		self.canvas.startRefreshTimer( self.nonActiveFPS )
Beispiel #11
0
    def pausePreview(self):
        if self.paused: return
        self.canvas.setInputDevice(None)
        jhook = self.getModule('joystick_hook')
        if jhook: jhook.setInputDevice(None)

        self.getApp().resetMainLoopBudget()

        signals.emitNow('preview.pause')
        logging.info('pause game preview')
        self.enableMenu('main/preview/start_game', True)
        self.enableMenu('main/preview/pause_game', False)

        self.window.setWindowTitle('Game Preview[ Paused ]')
        self.qtool.setStyleSheet(
            'QToolBar{ border-top: 1px solid rgb(255, 0, 0); }')

        self.paused = True
        self.getRuntime().pause()
        self.canvas.startRefreshTimer(self.nonActiveFPS)
Beispiel #12
0
	def startPreview( self ):
		if self.paused == False: return
		runtime = self.getRuntime()
		runtime.changeRenderContext( 'game', self.viewWidth, self.viewHeight )
		self.canvas.setInputDevice( runtime.getInputDevice('device') )
		self.canvas.startRefreshTimer( self.activeFPS )
		self.canvas.interceptShortcut = True
		self.getApp().setMinimalMainLoopBudget()
		jhook = self.getModule( 'joystick_hook' )
		if jhook:
			jhook.refreshJoysticks()
			jhook.setInputDevice( runtime.getInputDevice('device') )

		self.enableMenu( 'main/preview/pause_game', True )
		self.enableMenu( 'main/preview/stop_game',  True )
		self.enableMenu( 'main/preview/start_game', False )

		if self.paused: #resume
			logging.info('resume game preview')
			signals.emitNow( 'preview.resume' )

		elif self.paused is None: #start
			logging.info('start game preview')
			signals.emitNow( 'preview.start' )
			signals.emitNow( 'preview.resume' )
			self.updateTimer = self.window.startTimer( 60, self.updateView )

		self.window.setWindowTitle( 'Game Preview [ RUNNING ]')
		self.qtool.setStyleSheet('QToolBar{ border-top: 1px solid rgb(0, 120, 0); }')
		self.paused = False
		runtime.resume()
		self.setFocus()
		logging.info('game preview started')
Beispiel #13
0
    def startPreview(self):
        if self.paused == False: return
        runtime = self.getRuntime()
        runtime.changeRenderContext('game', self.viewWidth, self.viewHeight)
        self.canvas.setInputDevice(runtime.getInputDevice('device'))
        self.canvas.startRefreshTimer(self.activeFPS)
        self.canvas.interceptShortcut = True
        self.getApp().setMinimalMainLoopBudget()
        jhook = self.getModule('joystick_hook')
        if jhook:
            jhook.refreshJoysticks()
            jhook.setInputDevice(runtime.getInputDevice('device'))

        self.enableMenu('main/preview/pause_game', True)
        self.enableMenu('main/preview/stop_game', True)
        self.enableMenu('main/preview/start_game', False)

        if self.paused:  #resume
            logging.info('resume game preview')
            signals.emitNow('preview.resume')

        elif self.paused is None:  #start
            logging.info('start game preview')
            signals.emitNow('preview.start')
            signals.emitNow('preview.resume')
            self.updateTimer = self.window.startTimer(60, self.updateView)

        self.window.setWindowTitle('Game Preview [ RUNNING ]')
        self.qtool.setStyleSheet(
            'QToolBar{ border-top: 1px solid rgb(0, 120, 0); }')
        self.paused = False
        runtime.resume()
        self.setFocus()
        logging.info('game preview started')
Beispiel #14
0
	def stopPreview( self ):
		if self.paused is None: return
		logging.info('stop game preview')
		self.canvas.setInputDevice( None )
		self.canvas.interceptShortcut = False
		jhook = self.getModule( 'joystick_hook' )
		if jhook: jhook.setInputDevice( None )
		
		self.getApp().resetMainLoopBudget()

		signals.emitNow( 'preview.stop' )
		self.updateTimer.stop()
		self.enableMenu( 'main/preview/stop_game',  False )
		self.enableMenu( 'main/preview/pause_game', False )
		self.enableMenu( 'main/preview/start_game', True )
		
		self.window.setWindowTitle( 'Game Preview' )
		self.qtool.setStyleSheet('QToolBar{ border-top: none; }')

		self.paused = None
		self.updateTimer = None
		self.canvas.startRefreshTimer( self.nonActiveFPS )
		logging.info('game preview stopped')
Beispiel #15
0
	def doContinue(self):
		self.emitCMD('exit')
		signals.emitNow('debug.continue')
Beispiel #16
0
	def doStop(self):
		self.emitCMD('terminate')
		signals.emitNow('debug.stop')
Beispiel #17
0
 def doContinue(self):
     self.emitCMD('exit')
     signals.emitNow('debug.continue')
Beispiel #18
0
 def doStop(self):
     self.emitCMD('terminate')
     signals.emitNow('debug.stop')