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')
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()
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' )
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')
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')
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()
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
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
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')
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 )
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)
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')
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')
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')
def doContinue(self): self.emitCMD('exit') signals.emitNow('debug.continue')
def doStop(self): self.emitCMD('terminate') signals.emitNow('debug.stop')