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()
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 ) )
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 ) )
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)
def openSearchView(self): requestSearchView(context='scene', type=self.targetType, multiple_selection=True, on_selection=self.onSearchSelection, on_cancel=self.onSearchCancel, initial=self.value)
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, )
def openSearchView( self ): requestSearchView( context = 'scene', type = self.targetType, multiple_selection = True, on_selection = self.onSearchSelection, on_cancel = self.onSearchCancel, initial = self.value )
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)
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 )
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)
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 )
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 )
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' )
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 )
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()
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)
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 )
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' )
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 )
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')
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()
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()
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()
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()
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
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
def regroupTo(self): requestSearchView(info='select texture group to assign', context='texture_group', on_selection=self.regroup)
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()
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' )
def onFindEditor(self): requestSearchView(info='select target entity class to replace with', on_search=self.listSubEditors, on_selection=self.focusTargetSolo, sort_method='none')
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))
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())
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()
def promptAddChild(self): requestSearchView(context='effect_editor', type=None, multiple_selection=False, on_selection=self.addChildNode, on_search=self.listParticleSystemChildTypes)
def regroupTo(self): requestSearchView(info="select texture group to assign", context="texture_group", on_selection=self.regroup)
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')
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()