示例#1
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'add_session':
			self.addSession()

		elif name == 'add_scheme':
			if not self.currentSession:
				logging.warn( 'no quest session specified' )
				return False
			requestSearchView( 
				info    = 'select quest scheme to add',
				context = 'quest_scheme',
				on_search = self.enumerateSelectableGraphs,
				on_selection = self.addSchemeEntry
			)

		elif name == 'remove_scheme':
			if not self.currentSession:
				logging.warn( 'no quest session specified' )
				return False
			for node in self.tree.getSelection():
				if isMockInstance( node, 'QuestSessionSchemeEntry' ):
					self.removeSchemeEntry( node )
				elif isMockInstance( node, 'QuestSession' ):
					self.removeSession( node )

		elif name == 'refresh':
			self.tree.rebuild()
示例#2
0
	def onMenu( self, menu ):
		if menu.name == 'find_global_object':
			requestSearchView( 
				info    = 'search for global object',
				context = 'global_object',				
				on_selection = lambda node: self.selectObject( node, True )
				)
示例#3
0
	def onButtonAddComponent( self ):
		requestSearchView( 
				info    = 'select component type to create',
				context = 'component_creation',
				on_selection = lambda obj: 
					app.doCommand( 'scene_editor/create_component', name = obj )
				)
示例#4
0
 def promptAddNode(self):
     requestSearchView(info='adding SQScript node...',
                       context='sq_script_editor',
                       type=None,
                       multiple_selection=False,
                       on_selection=self.createNode,
                       on_search=self.listNodeTypes)
示例#5
0
 def openSearchView(self):
     requestSearchView(context='scene',
                       type=self.targetType,
                       multiple_selection=True,
                       on_selection=self.onSearchSelection,
                       on_cancel=self.onSearchCancel,
                       initial=self.value)
示例#6
0
	def onButtonAddComponent( self ):
		requestSearchView( 
				info    = 'select component type to create',
				context = 'component_creation',
				on_selection = lambda obj: 
					app.doCommand( 'scene_editor/create_component', name = obj )
				)
示例#7
0
 def promptAddNode(self):
     requestSearchView(
         info="adding SQScript node...",
         context="sq_script_editor",
         type=None,
         multiple_selection=False,
         on_selection=self.createNode,
         on_search=self.listNodeTypes,
     )
示例#8
0
	def openSearchView( self ):
		requestSearchView( 
			context      = 'scene',
			type         = self.targetType,
			multiple_selection = True,
			on_selection = self.onSearchSelection,
			on_cancel    = self.onSearchCancel,
			initial      = self.value
			)
示例#9
0
 def openSearchView(self):
     requestSearchView(context='scene',
                       type=None,
                       multiple_selection=False,
                       on_selection=self.onSearchSelection,
                       on_cancel=self.onSearchCancel,
                       on_search=self.onSearch,
                       sort_method='none',
                       initial=self.value)
示例#10
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'icon_view':
			self.setViewMode( 'icon', False )
		elif name == 'detail_view':
			self.setViewMode( 'detail', False )

		#content toolbar
		elif name == 'create_asset':
			requestSearchView( 
				info    = 'select asset type to create',
				context = 'asset_creator',
				type    = 'scene',
				on_selection = self.createAsset
			)

		elif name == 'create_folder':
			self.createAsset( 'folder' )

		elif name == 'create_remote_file':
			self.createRemoteFile()

		elif name == 'check_remote_file':
			self.checkRemoteFile()

		elif name == 'show_remote_file':
			self.showRemoteFile()

		elif name == 'locate_asset':
			for node in self.getItemSelection():
				self.module.locateAsset( node, goto = True )
				break

		elif name == 'asset_in_scene':
			self.setAssetSource( bool(tool.getValue()) and 'scene' or 'all' )

		elif name in ( 'create_filter', 'create_filter_group' ):
			node = self.treeFilter.getFirstSelection()
			if not node:
				contextGroup = self.getFilterRootGroup()
			elif isinstance( node, SearchFilterGroup ):
				contextGroup = node
			else:
				contextGroup = node.getParent()
			if name == 'create_filter':
				node = SearchFilter()
				node.setName ( 'filter' )
			else:
				node = SearchFilterGroup()
				node.setName ( 'group' )

			contextGroup.addChild( node )

			self.treeFilter.addNode( node )
			self.treeFilter.editNode( node )
			self.treeFilter.selectNode( node )
示例#11
0
    def prompLoadScheme(self):
        entries = self.scanWindowSchemeFiles()

        def _changeScheme(name):
            filepath = name + WINDOW_SCHEME_EXTENSION
            self.loadWindowSchemeFromFile(filepath)

        requestSearchView(info='choose window scheme',
                          selections=entries,
                          on_selection=_changeScheme)
示例#12
0
	def openSearchView( self ):
		requestSearchView( 
			context      = 'scene',
			type         = None,
			multiple_selection = False,
			on_selection = self.onSearchSelection,
			on_cancel    = self.onSearchCancel,
			on_search    = self.onSearch,
			initial      = self.value
			)
示例#13
0
	def onTool( self, tool ):
		name = tool.name
		if   name == 'find_tilemap':
			requestSearchView( 
				context   = 'scene',
				type      = _MOCK.TileMap,
				on_selection = self.selectTileMapEntity
			)

		elif name == 'add_layer':
			if not self.targetTileMap: return
			supportedTilesetTypes = self.targetTileMap.getSupportedTilesetType( self.targetTileMap )
			requestSearchView( 
				info         = 'select tileset for new layer',
				context      = 'asset',
				type         = supportedTilesetTypes,
				multiple_selection = False,
				on_selection = self.createLayer,
				# on_search    = self.listTileMapLayerTypes	
			)

		elif name == 'remove_layer':
			self.canvas.callMethod( 'editor', 'removeTileMapLayer' )
			self.treeLayers.rebuild()

		elif name == 'layer_up':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerUp' )
			self.treeLayers.rebuild()

		elif name == 'layer_down':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerDown' )
			self.treeLayers.rebuild()

		elif name == 'tool_clear':
			self.canvas.callMethod( 'editor', 'clearLayer' )
		
		elif name == 'tool_random':
			self.canvas.callMethod( 'editor', 'toggleToolRandom', tool.getValue() )

		elif name == 'inc_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'incSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'dec_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'decSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'view_selected_only':
			self.setViewSelectedOnly( tool.getValue() )

		elif name == 'edit_property':
			if self.targetTileMapLayer:
				self.editLayerProperty( self.targetTileMapLayer )
示例#14
0
	def onTool( self, tool ):
		name = tool.name
		if   name == 'find_paintcanvas':
			requestSearchView( 
				context   = 'scene',
				type      = _MOCK.PaintCanvas,
				on_selection = self.selectPaintCanvasEntity
			)

		elif name == 'tool_clear':
			self.canvas.callMethod( 'editor', 'clearCanvas' )
示例#15
0
	def openBrowser( self ):
		self.prevValue = self.getSearchInitial()
		self.testApplied = False
		requestSearchView( 
			context      = self.getSearchContext(),
			type         = self.getSearchType(),
			on_selection = self.onSearchSelection,
			on_test      = self.onSearchSelectionTest,
			on_cancel    = self.onSearchCancel,
			initial      = self.getSearchInitial(),
			terms        = self.defaultTerms
			)
示例#16
0
	def openBrowser( self ):
		self.prevValue = self.getSearchInitial()
		self.testApplied = False
		requestSearchView( 
			context      = self.getSearchContext(),
			type         = self.getSearchType(),
			on_selection = self.onSearchSelection,
			on_test      = self.onSearchSelectionTest,
			on_cancel    = self.onSearchCancel,
			initial      = self.getSearchInitial(),
			terms        = self.defaultTerms
			)
示例#17
0
    def onTool(self, tool):
        name = tool.name
        if name == 'add_graph':
            requestSearchView(info='select portal graph to add',
                              context='portal_graph',
                              on_search=self.enumerateSelectableGraphs,
                              on_selection=self.addGraph)

        elif name == 'remove_graph':
            for node in self.treeGraphs.getSelection():
                self.removeGraph(node)

        elif name == 'refresh':
            self.treeGraphs.rebuild()
示例#18
0
    def promptProtalJump(self):
        entries = [(portal.id, portal.id, 'portal', 'portal')
                   for portal in self.getCurrentScenePortals()]

        def _locateConnectedPortal(id):
            if not self.locateConnectedPortal(id):
                alertMessage('No connection', 'No connected portal found')

        def _locatePortal(selections):
            pass

        requestSearchView(info='select portal to jump',
                          selections=entries,
                          on_selection=_locateConnectedPortal,
                          on_change=_locatePortal)
示例#19
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'add_layer':
			if not self.targetTileMap: return
			supportedTilesetTypes = self.targetTileMap.getSupportedTilesetType( self.targetTileMap )
			requestSearchView( 
				info         = 'select tileset for new layer',
				context      = 'asset',
				type         = supportedTilesetTypes,
				multiple_selection = False,
				on_selection = self.createLayer,
				# on_search    = self.listTileMapLayerTypes	
			)

		elif name == 'remove_layer':
			self.canvas.callMethod( 'editor', 'removeTileMapLayer' )
			self.treeLayers.rebuild()

		elif name == 'layer_up':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerUp' )
			self.treeLayers.rebuild()

		elif name == 'layer_down':
			self.canvas.callMethod( 'editor', 'moveTileMapLayerDown' )
			self.treeLayers.rebuild()

		elif name == 'tool_clear':
			self.canvas.callMethod( 'editor', 'clearLayer' )
		
		elif name == 'tool_random':
			self.canvas.callMethod( 'editor', 'toggleToolRandom', tool.getValue() )

		elif name == 'inc_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'incSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'dec_subdiv':
			if self.targetTileMapLayer:
				self.canvas.callMethod( 'editor', 'decSubDivision' )
				self.treeLayers.refreshNodeContent( self.targetTileMapLayer )

		elif name == 'view_selected_only':
			self.setViewSelectedOnly( tool.getValue() )

		elif name == 'edit_property':
			if self.targetTileMapLayer:
				self.editLayerProperty( self.targetTileMapLayer )
示例#20
0
	def onTool( self, tool ):
		name = tool.name
		
		if name == 'fold_all':
			self.tree.foldAllItems()

		elif name == 'unfold_all':
			self.tree.expandAllItems()

		elif name == 'refresh_tree':
			self.tree.rebuild()

		elif name == 'refresh':
			self.scheduleRefreshScene()

		elif name == 'make_proto':
			self.makeProto()

		elif name == 'create_proto_instance':
			requestSearchView( 
				info    = 'select a proto to instantiate',
				context = 'asset',
				type    = 'proto',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_proto_instance', proto = obj.getNodePath() )
				)

		elif name == 'create_proto_container':
			requestSearchView( 
				info    = 'select a proto to create contained instance',
				context = 'asset',
				type    = 'proto',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_proto_container', proto = obj.getNodePath() )
				)

		elif name == 'create_group':
			self.doCommand( 'scene_editor/entity_group_create' )

		elif name == 'group_entity':
			self.doCommand( 'scene_editor/group_entities' )
		
		elif name == 'select_scene':
			self.doCommand( 'scene_editor/select_scene' )
示例#21
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'icon_view':
			self.setViewMode( 'icon', False )
		elif name == 'detail_view':
			self.setViewMode( 'detail', False )

		#content toolbar
		elif name == 'create_asset':
			requestSearchView( 
				info    = 'select asset type to create',
				context = 'asset_creator',
				type    = 'scene',
				on_selection = self.createAsset
			)

		elif name == 'create_folder':
			self.createAsset( 'folder' )

		elif name == 'locate_asset':
			for node in self.getItemSelection():
				self.module.locateAsset( node, goto = True )
				break

		elif name in ( 'create_filter', 'create_filter_group' ):
			node = self.treeFilter.getFirstSelection()
			if not node:
				contextGroup = self.getFilterRootGroup()
			elif isinstance( node, AssetFilterGroup ):
				contextGroup = node
			else:
				contextGroup = node.getParent()
			if name == 'create_filter':
				node = AssetFilter()
				node.setName ( 'filter' )
			else:
				node = AssetFilterGroup()
				node.setName ( 'group' )

			contextGroup.addChild( node )

			self.treeFilter.addNode( node )
			self.treeFilter.editNode( node )
			self.treeFilter.selectNode( node )
示例#22
0
    def onTool(self, tool):
        name = tool.name

        if name == 'fold_all':
            self.tree.foldAllItems()

        elif name == 'unfold_all':
            self.tree.expandAllItems()

        elif name == 'refresh_tree':
            self.tree.rebuild()

        elif name == 'refresh':
            self.scheduleRefreshScene()

        elif name == 'make_proto':
            self.makeProto()

        elif name == 'create_proto_instance':
            requestSearchView(info='select a proto to instantiate',
                              context='asset',
                              type='proto',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_proto_instance',
                                  proto=obj.getNodePath()))

        elif name == 'create_proto_container':
            requestSearchView(
                info='select a proto to create contained instance',
                context='asset',
                type='proto',
                on_selection=lambda obj: self.doCommand(
                    'scene_editor/create_proto_container',
                    proto=obj.getNodePath()))

        elif name == 'create_group':
            self.doCommand('scene_editor/entity_group_create')

        elif name == 'group_entity':
            self.doCommand('scene_editor/group_entities')

        elif name == 'select_scene':
            self.doCommand('scene_editor/select_scene')
示例#23
0
    def onTool(self, tool):
        name = tool.name
        if name == 'add_group':
            g = self.canvas.callMethod('preview', 'addGroup')
            self.tree.addNode(g)
            self.tree.editNode(g)
            self.tree.selectNode(g)

        elif name == 'remove_group':
            self.removeSelectedGroup()

        elif name == 'assign_group':
            self.regroupTo()

        elif name == 'assign_processor':
            requestSearchView(info='select processor to assign',
                              context='asset',
                              type='texture_processor',
                              on_selection=self.assignProcessor)

        elif name == 'clear_processor':
            self.assignProcessor(None)

        elif name == 'rebuild':
            texLib = self.getModule('texture_library')
            assetLib = self.getAssetLibrary()
            for node in self.tree.getSelection():
                clasName = node.getClassName(node)
                if clasName == 'TextureGroup':
                    texLib.scheduleUpdateGroup(node, 'file')
                    # for tex in node.textures.values():
                    # 	assetNode = assetLib.getAssetNode( tex.path )
                    # 	assetNode.markModified()
                    # 	assetLib.scheduleScanProject()
                else:
                    texLib.scheduleUpdateTexture(node, True)
                    # assetNode = assetLib.getAssetNode( node.path )
                    # assetNode.markModified()
                    # assetLib.scheduleScanProject()
        elif name == 'apply':
            texLib = self.getModule('texture_library')
            texLib.scheduleUpdate()
示例#24
0
    def onTool(self, tool):
        name = tool.name
        if name == 'add':
            requestSearchView(
                info='select global object class to create',
                context='global_object_class',
                on_selection=lambda objName: self.createGlobalObject(objName))

        if name == 'add_group':
            group = self.delegate.safeCall('addGroup')
            self.tree.addNode(group)
            self.tree.editNode(group)
            self.tree.selectNode(group)

        elif name == 'remove':
            for node in self.tree.getSelection():
                self.doCommand('scene_editor/remove_global_object',
                               target=node)
                self.tree.removeNode(node)

        elif name == 'refresh':
            self.scheduleRefreshObject()
示例#25
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'add':
			requestSearchView( 
				info    = 'select global object class to create',
				context = 'global_object_class',
				on_selection = lambda objName: self.createGlobalObject( objName )				
				)

		if name == 'add_group':
			group = self.delegate.safeCall( 'addGroup' )
			self.tree.addNode( group )
			self.tree.editNode( group )
			self.tree.selectNode( group )

		elif name == 'remove':
			for node in self.tree.getSelection():
				self.doCommand( 'scene_editor/remove_global_object', target = node )
				self.tree.removeNode( node )

		elif name == 'refresh':
			self.scheduleRefreshObject()
示例#26
0
    def onTool(self, tool):
        name = tool.name
        if name == "add_group":
            g = self.canvas.callMethod("preview", "addGroup")
            self.tree.addNode(g)
            self.tree.editNode(g)
            self.tree.selectNode(g)

        elif name == "remove_group":
            self.removeSelectedGroup()

        elif name == "assign_group":
            self.regroupTo()

        elif name == "assign_processor":
            requestSearchView(
                info="select processor to assign",
                context="asset",
                type="texture_processor",
                on_selection=self.assignProcessor,
            )

        elif name == "clear_processor":
            self.assignProcessor(None)

        elif name == "rebuild":
            texLib = self.getModule("texture_library")
            assetLib = self.getAssetLibrary()
            for node in self.tree.getSelection():
                clasName = node.getClassName(node)
                if clasName == "TextureGroup":
                    for tex in node.textures.values():
                        assetNode = assetLib.getAssetNode(tex.path)
                        assetNode.markModified()
                        assetLib.scheduleScanProject()
                else:
                    assetNode = assetLib.getAssetNode(node.path)
                    assetNode.markModified()
                    assetLib.scheduleScanProject()
示例#27
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'add_target':
			requestSearchView( 
				info    = 'select deploy target type',
				context = 'deploy_target_type',
				on_selection = self.addDeployTarget
				)

		elif name == 'remove_target':
			for target in self.treeTarget.getSelection():
				self.treeTarget.removeNode( target )
				self.delegate.safeCallMethod( 'config', 'removeDeployTarget', target )

		elif name == 'add_scene':
			requestSearchView( 
				info    = 'select scene to deploy',
				context = 'asset',
				type    = 'scene',
				on_selection = self.addDeployScene
				)

		elif name == 'edit_scene':
			requestSearchView( 
				info    = 'select new target scene ',
				context = 'asset',
				type    = 'scene',
				on_selection = self.changeDeployScene
				)

		elif name == 'remove_scene':
			for entry in self.treeScene.getSelection():	
				self.delegate.safeCallMethod( 'config', 'removeDeployScene', entry )
				self.treeScene.removeNode( entry )
			self.treeScene.refreshAllContent()

		elif name == 'set_entry_scene':
			for entry in self.treeScene.getSelection():
				self.delegate.safeCallMethod( 'config', 'setEntryScene', entry )
				break
			self.treeScene.refreshAllContent()

		elif name == 'move_up_scene':
			for target in self.treeScene.getSelection():
				self.delegate.safeCallMethod( 'config', 'moveSceneUp', target )
				self.treeScene.rebuild()
				self.treeScene.selectNode( target )
				break

		elif name == 'move_down_scene':
			for target in self.treeScene.getSelection():
				self.delegate.safeCallMethod( 'config', 'moveSceneDown', target )
				self.treeScene.rebuild()
				self.treeScene.selectNode( target )
				break
示例#28
0
    def onTool(self, tool):
        name = tool.name
        if name == 'add_target':
            requestSearchView(info='select deploy target type',
                              context='deploy_target_type',
                              on_selection=self.addDeployTarget)

        elif name == 'remove_target':
            for target in self.treeTarget.getSelection():
                self.treeTarget.removeNode(target)
                self.delegate.safeCallMethod('config', 'removeDeployTarget',
                                             target)

        elif name == 'add_scene':
            requestSearchView(info='select scene to deploy',
                              context='asset',
                              type='scene',
                              on_selection=self.addDeployScene)

        elif name == 'edit_scene':
            requestSearchView(info='select new target scene ',
                              context='asset',
                              type='scene',
                              on_selection=self.changeDeployScene)

        elif name == 'remove_scene':
            for entry in self.treeScene.getSelection():
                self.delegate.safeCallMethod('config', 'removeDeployScene',
                                             entry)
                self.treeScene.removeNode(entry)
            self.treeScene.refreshAllContent()

        elif name == 'set_entry_scene':
            for entry in self.treeScene.getSelection():
                self.delegate.safeCallMethod('config', 'setEntryScene', entry)
                break
            self.treeScene.refreshAllContent()

        elif name == 'move_up_scene':
            for target in self.treeScene.getSelection():
                self.delegate.safeCallMethod('config', 'moveSceneUp', target)
                self.treeScene.rebuild()
                self.treeScene.selectNode(target)
                break

        elif name == 'move_down_scene':
            for target in self.treeScene.getSelection():
                self.delegate.safeCallMethod('config', 'moveSceneDown', target)
                self.treeScene.rebuild()
                self.treeScene.selectNode(target)
                break
示例#29
0
 def regroupTo(self):
     requestSearchView(info='select texture group to assign',
                       context='texture_group',
                       on_selection=self.regroup)
示例#30
0
	def onMenu(self, menuNode):
		name = menuNode.name

		if name in ('deploy_set', 'deploy_disallow', 'deploy_unset'):
			if name   == 'deploy_set':      newstate = True
			elif name == 'deploy_disallow': newstate = False
			elif name == 'deploy_unset':    newstate = None
			s = self.currentContextInstance.getItemSelection()
			for n in s:
				if isinstance(n,AssetNode):
					n.setDeployState(newstate)

		elif name == 'check_asset_remote':
			self.checkRemoteFile( self.currentContextInstance )

		elif name == 'refresh_remote':
			app.getAssetLibrary().scanRemoteFiles()
			alertMessage( 'OK', 'Remote files refreshed', 'info' )
					
		elif name == 'reimport':
			if self.currentContextSource == 'tree':
				targetNode = self.currentContextTargetNode
				if targetNode:
					targets = [ targetNode ]
				else:
					targets = []
			else:
				targets = self.currentContextInstance.getItemSelection()
			for targetNode in targets:
				if isinstance( targetNode, AssetNode ):
					targetNode.markModified()
			app.getAssetLibrary().importModifiedAssets()

		elif name == 'clone':
			pass

		elif name == 'remove':
			pass

		elif name == 'show_in_browser':
			n = self.currentContextTargetNode
			if isinstance( n, AssetNode ):
				n.showInBrowser()

		elif name == 'show_meta_data':
			n = self.currentContextTargetNode
			if isinstance( n, AssetNode ):
				path = n.getMetaDataFilePath()
				if path and os.path.exists( path ):
					AssetUtils.showFileInBrowser(path)
				else:
					if requestConfirm( 'No Metadata', 'Create an empty file?' ):
						if not n.metadata:
							n.setMetaData( 'key', 'value' )
						n.metaDataDirty = True
						n.saveMetaDataTable()
						AssetUtils.showFileInBrowser(path)

		elif name == 'open_in_system':
			for n in self.currentContextInstance.getItemSelection():
				if isinstance( n, AssetNode ):
					n.openInSystem()
					break

		elif name == 'copy_node_path':
			text = ''
			for n in self.currentContextInstance.getItemSelection():
				if text: text += '\n'
				text += n.getNodePath()
			setClipboardText( text )

		elif name == 'refresh_thumbnail':
			text = ''
			for n in self.currentContextInstance.getItemSelection():
				n.clearThumbnails()
				for instance in self.instances.values():
					view = instance.getCurrentView()
					view.refreshNodeContent( n )

		elif name == 'create_asset':
			requestSearchView( 
				info    = 'select asset type to create',
				context = 'asset_creator',
				type    = 'scene',
				on_selection = self.createAsset
			)

		elif name == 'create_folder':
			self.createAsset( 'folder' )

		elif name == 'find_asset':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'find_asset_folder':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset_folder',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'open_asset':
			requestSearchView( 
				info    = 'open asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.openAsset
				)

		elif name == 'new_asset_search':
			self.createAssetSearch()
示例#31
0
	def onMenu( self, menu ):
		name = menu.name
		if name == 'close_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before closing scene' )
				return
			self.closeScene()

		elif name == 'open_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before opening scene' )
				return
			requestSearchView( 
				info    = 'select scene to open',
				context = 'asset',
				type    = 'scene',
				on_selection = self.openScene
				)
			
		elif name == 'save_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before saving' )
				return
			self.saveScene()

		elif name == 'locate_scene_asset':
			if self.activeSceneNode:
				assetBrowser = self.getModule( 'asset_browser' )
				if assetBrowser:
					assetBrowser.selectAsset( self.activeSceneNode )

		elif name == 'add_entity':
			requestSearchView( 
				info    = 'select entity type to create',
				context = 'entity_creation',
				on_selection = lambda obj: 
					self.doCommand( 'scene_editor/create_entity', name = obj )
				)

		elif name == 'add_component':
			requestSearchView( 
				info    = 'select component type to create',
				context = 'component_creation',
				on_selection = lambda obj: 
					self.doCommand( 'scene_editor/create_component', name = obj )
				)

		elif name == 'add_empty_entity':
			self.doCommand( 'scene_editor/create_entity', name = 'Entity' )

		elif name == 'load_prefab':
			requestSearchView( 
				info    = 'select a perfab node to instantiate',
				context = 'asset',
				type    = 'prefab',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_prefab_entity', prefab = obj.getNodePath() )
				)

		elif name == 'load_prefab_in_container':
			requestSearchView( 
				info    = 'select a perfab node to instantiate( PefabContainer )',
				context = 'asset',
				type    = 'prefab',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_prefab_container', prefab = obj.getNodePath() )
				)

		elif name == 'remove_entity':
			self.doCommand( 'scene_editor/remove_entity' )

		elif name == 'clone_entity':
			self.doCommand( 'scene_editor/clone_entity' )

		elif name == 'find_entity':
			requestSearchView( 
				info    = 'search for entity in current scene',
				context = 'scene',
				type    = 'entity',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'find_entity_in_group':
			requestSearchView( 
				info    = 'search for entity in current entity group',
				context = 'scene',
				type    = 'entity_in_group',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'find_entity_group':
			requestSearchView( 
				info    = 'search for group in current scene',
				context = 'scene',
				type    = 'group',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'create_group':
			self.doCommand( 'scene_editor/entity_group_create' )

		elif name == 'remove_component':
			context = menu.getContext()
			if context:
				self.doCommand( 'scene_editor/remove_component', target = context )

		elif name == 'copy_component':
			context = menu.getContext()
			if context:
				self.doCommand( 'scene_editor/copy_component', target = context )

		elif name == 'assign_layer':
			if not self.tree.getSelection(): return
			requestSearchView( 
				info    = 'select layer to assign',
				context = 'scene_layer',
				type    = _MOCK.Entity,
				on_selection = self.assignEntityLayer
				)

		elif name == 'toggle_visibility':
			self.doCommand( 'scene_editor/toggle_entity_visibility' )

		elif name == 'freeze_entity_pivot':
			self.doCommand( 'scene_editor/freeze_entity_pivot' )
示例#32
0
 def onFindEditor(self):
     requestSearchView(info='select target entity class to replace with',
                       on_search=self.listSubEditors,
                       on_selection=self.focusTargetSolo,
                       sort_method='none')
示例#33
0
 def onMenu(self, menu):
     if menu.name == 'find_global_object':
         requestSearchView(
             info='search for global object',
             context='global_object',
             on_selection=lambda node: self.selectObject(node, True))
示例#34
0
    def onTool(self, tool):
        name = tool.name
        if name == 'find_animator':
            requestSearchView(context='scene',
                              type=_MOCK.Animator,
                              on_selection=self.selectAnimatorEntity)

        elif name == 'change_animator':
            target0 = self.targetAnimator
            target1 = self.findTargetAnimator()
            if (not target0) and (not target1):
                alertMessage('No Animator',
                             'No Animator found in selected entity scope',
                             'question')

        elif name == 'save_data':
            self.saveAnimatorData()

        elif name == 'extra':
            self.openTargetContextMenu()

        elif name == 'add_clip':
            if self.checkTargetAnimator():
                self.addClip()

        elif name == 'add_clip_tree':
            if self.checkTargetAnimator():
                self.addClipTree()

        elif name == 'add_clip_group':
            if self.checkTargetAnimator():
                self.addClipGroup()

        elif name == 'remove_clip':
            if self.checkTargetAnimator():
                self.removeClipNode()

        elif name == 'clone_clip':
            if self.checkTargetAnimator():
                self.cloneClipNode()

        elif name == 'add_track_group':
            group = self.delegate.callMethod('view', 'addTrackGroup')
            if group:
                self.widget.addTrack(group, True)

        elif name == 'remove_track':
            for track in self.widget.treeTracks.getSelection():
                self.delegate.callMethod('view', 'removeTrack', track)
                self.widget.removeTrack(track)
            self.refreshPreview()

        elif name == 'fold_tracks':
            self.widget.treeTracks.foldAllItems()

        elif name == 'unfold_tracks':
            self.widget.treeTracks.expandAllItems()

        elif name == 'locate_target':
            for track in self.widget.treeTracks.getSelection():
                sceneGraphEditor = self.getModule('scenegraph_editor')
                if sceneGraphEditor:
                    targetEntity = self.delegate.callMethod(
                        'view', 'findTrackEntity', track)
                    if targetEntity:
                        sceneGraphEditor.selectEntity(targetEntity,
                                                      focus_tree=True)
                #pass
                return

        elif name == 'retarget':
            requestSearchView(
                info='retarget animator track to...',
                context='scene',
                type='entity',
                multiple_selection=False,
                on_selection=self.retargetTrack,
            )

        elif name == 'add_clip_tree_node':
            requestSearchView(info='adding AnimatorClipTree node...',
                              context='clip_tree_node',
                              type=None,
                              multiple_selection=False,
                              on_selection=self.createClipTreeNode,
                              on_search=self.listClipTreeNodeTypes)

        elif name == 'remove_clip_tree_node':
            for node in self.widget.treeClipTree.getSelection():
                if node.isVirtual(node): continue
                self.doCommand('scene_editor/animator_remove_clip_tree_node',
                               target_node=node)
            self.widget.rebuildClipTree()
            self.refreshPreview()

        #preview
        elif name == 'goto_start':
            self.gotoStart()
        elif name == 'goto_end':
            self.gotoEnd()
        elif name == 'play':
            if tool.getValue():
                self.startPreview()
            else:
                self.stopPreview(False)
        elif name == 'stop':
            self.stopPreview(True)
        elif name == 'play_tree':
            if tool.getValue():
                self.startPreview()
            else:
                self.stopPreview(False)
        elif name == 'stop_tree':
            self.stopPreview(True)
        elif name == 'toggle_repeat':
            self.delegate.callMethod('view', 'togglePreviewRepeat',
                                     tool.getValue())
示例#35
0
    def onMenu(self, menuNode):
        name = menuNode.name

        if name in ('deploy_set', 'deploy_disallow', 'deploy_unset'):
            if name == 'deploy_set': newstate = True
            elif name == 'deploy_disallow': newstate = False
            elif name == 'deploy_unset': newstate = None
            s = getAssetSelectionManager().getSelection()
            for n in s:
                if isinstance(n, AssetNode):
                    n.setDeployState(newstate)

        elif name == 'reimport':
            targetNode = self.currentContextTargetNode
            if targetNode:
                targets = [targetNode]
            else:
                targets = getAssetSelectionManager().getSelection()
            for targetNode in targets:
                if isinstance(targetNode, AssetNode):
                    targetNode.markModified()
            app.getAssetLibrary().importModifiedAssets()

        elif name == 'clone':
            pass

        elif name == 'remove':
            pass

        elif name == 'show_in_browser':
            n = self.currentContextTargetNode
            if isinstance(n, AssetNode):
                n.showInBrowser()

        elif name == 'open_in_system':
            for n in getAssetSelectionManager().getSelection():
                if isinstance(n, AssetNode):
                    n.openInSystem()
                    break

        elif name == 'copy_node_path':
            text = ''
            for n in getAssetSelectionManager().getSelection():
                if text: text += '\n'
                text += n.getNodePath()
            setClipboardText(text)

        elif name == 'create_asset':
            requestSearchView(info='select asset type to create',
                              context='asset_creator',
                              type='scene',
                              on_selection=self.createAsset)

        elif name == 'create_folder':
            self.createAsset('folder')

        elif name == 'find_asset':
            requestSearchView(info='search for asset',
                              context='asset',
                              on_test=self.selectAsset,
                              on_selection=self.selectAsset)

        elif name == 'find_asset_folder':
            requestSearchView(info='search for asset',
                              context='asset_folder',
                              on_test=self.selectAsset,
                              on_selection=self.selectAsset)

        elif name == 'open_asset':
            requestSearchView(info='open asset',
                              context='asset',
                              on_test=self.selectAsset,
                              on_selection=self.openAsset)

        elif name == 'new_asset_search':
            self.createAssetSearch()
示例#36
0
 def promptAddChild(self):
     requestSearchView(context='effect_editor',
                       type=None,
                       multiple_selection=False,
                       on_selection=self.addChildNode,
                       on_search=self.listParticleSystemChildTypes)
示例#37
0
 def regroupTo(self):
     requestSearchView(info="select texture group to assign", context="texture_group", on_selection=self.regroup)
示例#38
0
    def onMenu(self, menu):
        name = menu.name
        if name == 'close_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before closing scene')
                return
            self.closeScene()

        elif name == 'open_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before opening scene')
                return
            requestSearchView(info='select scene to open',
                              context='asset',
                              type='scene',
                              on_selection=self.openScene)

        elif name == 'save_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before saving')
                return
            self.saveScene()

        elif name == 'locate_scene_asset':
            if self.activeSceneNode:
                assetBrowser = self.getModule('asset_browser')
                if assetBrowser:
                    assetBrowser.selectAsset(self.activeSceneNode)

        elif name == 'add_entity':
            requestSearchView(info='select entity type to create',
                              context='entity_creation',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_entity', name=obj))

        elif name == 'add_component':
            requestSearchView(info='select component type to create',
                              context='component_creation',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_component', name=obj))

        elif name == 'add_empty_entity':
            self.doCommand('scene_editor/create_entity', name='Entity')

        elif name == 'load_prefab':
            requestSearchView(info='select a perfab node to instantiate',
                              context='asset',
                              type='prefab',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_prefab_entity',
                                  prefab=obj.getNodePath()))

        elif name == 'load_prefab_in_container':
            requestSearchView(
                info='select a perfab node to instantiate( PefabContainer )',
                context='asset',
                type='prefab',
                on_selection=lambda obj: self.doCommand(
                    'scene_editor/create_prefab_container',
                    prefab=obj.getNodePath()))

        elif name == 'remove_entity':
            self.doCommand('scene_editor/remove_entity')

        elif name == 'clone_entity':
            self.doCommand('scene_editor/clone_entity')

        elif name == 'find_entity':
            requestSearchView(
                info='search for entity in current scene',
                context='scene',
                type='entity',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'find_entity_in_group':
            requestSearchView(
                info='search for entity in current entity group',
                context='scene',
                type='entity_in_group',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'find_entity_group':
            requestSearchView(
                info='search for group in current scene',
                context='scene',
                type='group',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'create_group':
            self.doCommand('scene_editor/entity_group_create')

        elif name == 'remove_component':
            context = menu.getContext()
            if context:
                self.doCommand('scene_editor/remove_component', target=context)

        elif name == 'copy_component':
            context = menu.getContext()
            if context:
                self.doCommand('scene_editor/copy_component', target=context)

        elif name == 'edit_component_alias':
            context = menu.getContext()
            if context:
                oldAlias = context._alias or ''
                alias = requestString('Edit Alias', 'Enter Alias:', oldAlias)
                if alias != None:
                    if not alias: alias = False
                    self.doCommand('scene_editor/rename_component',
                                   target=context,
                                   alias=alias)

        elif name == 'assign_layer':
            if not self.tree.getSelection(): return
            requestSearchView(info='select layer to assign',
                              context='scene_layer',
                              type=_MOCK.Entity,
                              on_selection=self.assignEntityLayer)

        elif name == 'toggle_visibility':
            self.doCommand('scene_editor/toggle_entity_visibility')

        elif name == 'freeze_entity_pivot':
            self.doCommand('scene_editor/freeze_entity_pivot')
示例#39
0
	def onMenu(self, menuNode):
		name = menuNode.name

		if name in ('deploy_set', 'deploy_disallow', 'deploy_unset'):
			if name   == 'deploy_set':      newstate = True
			elif name == 'deploy_disallow': newstate = False
			elif name == 'deploy_unset':    newstate = None
			s = getAssetSelectionManager().getSelection()
			for n in s:
				if isinstance(n,AssetNode):
					n.setDeployState(newstate)
					
		elif name == 'reimport':
			targetNode = self.currentContextTargetNode
			if targetNode:
				targets = [ targetNode ]	
			else:
				targets = getAssetSelectionManager().getSelection()
			for targetNode in targets:
				if isinstance( targetNode, AssetNode ):
					targetNode.markModified()
			app.getAssetLibrary().importModifiedAssets()

		elif name == 'clone':
			pass

		elif name == 'remove':
			pass

		elif name == 'show_in_browser':
			n = self.currentContextTargetNode
			if isinstance( n, AssetNode ):
				n.showInBrowser()

		elif name == 'open_in_system':
			for n in getAssetSelectionManager().getSelection():
				if isinstance( n, AssetNode ):
					n.openInSystem()
					break

		elif name == 'copy_node_path':
			text = ''
			for n in getAssetSelectionManager().getSelection():
				if text: text += '\n'
				text += n.getNodePath()
			setClipboardText( text )

		elif name == 'create_asset':
			requestSearchView( 
				info    = 'select asset type to create',
				context = 'asset_creator',
				type    = 'scene',
				on_selection = self.createAsset
			)

		elif name == 'create_folder':
			self.createAsset( 'folder' )

		elif name == 'find_asset':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'find_asset_folder':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset_folder',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'open_asset':
			requestSearchView( 
				info    = 'open asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.openAsset
				)

		elif name == 'new_asset_search':
			self.createAssetSearch()