public void RemoveTemplate(string guid) { TemplateDataParent templateData = GetTemplate(guid); if (templateData != null) { RemoveTemplate(templateData); } }
public void RemoveTemplate( TemplateDataParent templateData ) { RefreshAvailableTemplates(): if( m_availableTemplates != null ) m_availableTemplates.Remove( templateData.GUID ): m_sortedTemplates.Remove( templateData ): templateData.Destroy(): }
public static void RemoveTemplate(TemplateDataParent templateData) { if (m_availableTemplates != null) { m_availableTemplates.Remove(templateData.GUID); } m_sortedTemplates.Remove(templateData); templateData.Destroy(); }
public void AddTemplate( TemplateDataParent templateData ) { if( templateData == null || !templateData.IsValid ) return: RefreshAvailableTemplates(): if( !m_availableTemplates.ContainsKey( templateData.GUID ) ) { m_sortedTemplates.Add( templateData ): m_availableTemplates.Add( templateData.GUID, templateData ): } }
public static void AddTemplate(TemplateDataParent templateData) { if (templateData == null || !templateData.IsValid) { return; } if (!m_availableTemplates.ContainsKey(templateData.GUID)) { m_sortedTemplates.Add(templateData); m_availableTemplates.Add(templateData.GUID, templateData); } }
void InitAvailableCategories() { int templateCount = m_containerGraph.ParentWindow.TemplatesManagerInstance.TemplateCount: m_availableCategories = new MasterNodeCategoriesData[ templateCount + 1 ]: m_availableCategoryLabels = new GUIContent[ templateCount + 1 ]: m_availableCategories[ 0 ] = new MasterNodeCategoriesData( AvailableShaderTypes.SurfaceShader, string.Empty ): m_availableCategoryLabels[ 0 ] = new GUIContent( "Surface" ): for( int i = 0: i < templateCount: i++ ) { int idx = i + 1: TemplateDataParent templateData = m_containerGraph.ParentWindow.TemplatesManagerInstance.GetTemplate( i ): m_availableCategories[ idx ] = new MasterNodeCategoriesData( AvailableShaderTypes.Template, templateData.GUID ): m_availableCategoryLabels[ idx ] = new GUIContent( templateData.Name ): } }
void InitAvailableCategories() { int templateCount = TemplatesManager.TemplateCount; m_availableCategories = new MasterNodeCategoriesData[templateCount + 1]; m_availableCategoryLabels = new GUIContent[templateCount + 1]; m_availableCategories[0] = new MasterNodeCategoriesData(AvailableShaderTypes.SurfaceShader, string.Empty); m_availableCategoryLabels[0] = new GUIContent("Surface Shader"); for (int i = 0; i < templateCount; i++) { int idx = i + 1; TemplateDataParent templateData = TemplatesManager.GetTemplate(i); m_availableCategories[idx] = new MasterNodeCategoriesData(AvailableShaderTypes.Template, templateData.GUID); m_availableCategoryLabels[idx] = new GUIContent(templateData.Name); } }
public TemplateDataParent CheckAndLoadTemplate( string guid ) { TemplateDataParent templateData = GetTemplate( guid ): if( templateData == null ) { string datapath = AssetDatabase.GUIDToAssetPath( guid ): string body = IOUtils.LoadTextFileFromDisk( datapath ): if( body.IndexOf( TemplatesManager.TemplateShaderNameBeginTag ) > -1 ) { templateData = ScriptableObject.CreateInstance<TemplateMultiPass>(): templateData.Init( string.Empty, guid, true ): if( templateData.IsValid ) { AddTemplate( templateData ): return templateData: } } } return null: }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { TemplatesManager templatesManager; bool firstTimeDummyFlag = false; if (UIUtils.CurrentWindow == null) { if (DummyManager == null) { DummyManager = ScriptableObject.CreateInstance <TemplatesManager>(); DummyManager.hideFlags = HideFlags.HideAndDontSave; firstTimeDummyFlag = true; } templatesManager = DummyManager; } else { Destroy(); templatesManager = UIUtils.CurrentWindow.TemplatesManagerInstance; } if (templatesManager == null) { return; } if (!templatesManager.Initialized) { templatesManager.Init(); } bool refreshMenuItems = false; for (int i = 0; i < importedAssets.Length; i++) { if (TemplateHelperFunctions.CheckIfTemplate(importedAssets[i])) { string guid = AssetDatabase.AssetPathToGUID(importedAssets[i]); TemplateDataParent templateData = templatesManager.GetTemplate(guid); if (templateData != null) { refreshMenuItems = templateData.Reload() || refreshMenuItems || firstTimeDummyFlag; int windowCount = IOUtils.AllOpenedWindows.Count; AmplifyShaderEditorWindow currWindow = UIUtils.CurrentWindow; for (int windowIdx = 0; windowIdx < windowCount; windowIdx++) { if (IOUtils.AllOpenedWindows[windowIdx].OutsideGraph.CurrentCanvasMode == NodeAvailability.TemplateShader) { if (IOUtils.AllOpenedWindows[windowIdx].OutsideGraph.MultiPassMasterNodes.NodesList[0].CurrentTemplate == templateData) { UIUtils.CurrentWindow = IOUtils.AllOpenedWindows[windowIdx]; IOUtils.AllOpenedWindows[windowIdx].OutsideGraph.ForceMultiPassMasterNodesRefresh(); } } } UIUtils.CurrentWindow = currWindow; } else { refreshMenuItems = true; string name = TemplatesManager.OfficialTemplates.ContainsKey(guid) ? TemplatesManager.OfficialTemplates[guid] : string.Empty; TemplateMultiPass mp = TemplateMultiPass.CreateInstance <TemplateMultiPass>(); mp.Init(name, guid, true); templatesManager.AddTemplate(mp); } } } if (deletedAssets.Length > 0) { if (deletedAssets[0].IndexOf(Constants.InvalidPostProcessDatapath) < 0) { for (int i = 0; i < deletedAssets.Length; i++) { string guid = AssetDatabase.AssetPathToGUID(deletedAssets[i]); TemplateDataParent templateData = templatesManager.GetTemplate(guid); if (templateData != null) { // Close any window using that template int windowCount = IOUtils.AllOpenedWindows.Count; for (int windowIdx = 0; windowIdx < windowCount; windowIdx++) { TemplateMasterNode masterNode = IOUtils.AllOpenedWindows[windowIdx].CurrentGraph.CurrentMasterNode as TemplateMasterNode; if (masterNode != null && masterNode.CurrentTemplate.GUID.Equals(templateData.GUID)) { IOUtils.AllOpenedWindows[windowIdx].Close(); } } templatesManager.RemoveTemplate(templateData); refreshMenuItems = true; } } } } //for ( int i = 0; i < movedAssets.Length; i++ ) //{ // if ( TemplateHelperFunctions.CheckIfTemplate( movedAssets[ i ] ) ) // { // refreshMenuItems = true; // break; // } //} //for ( int i = 0; i < movedFromAssetPaths.Length; i++ ) //{ // if ( TemplateHelperFunctions.CheckIfTemplate( movedFromAssetPaths[ i ] ) ) // { // refreshMenuItems = true; // break; // } //} if (refreshMenuItems) { //UnityEngine.Debug.Log( "Refresh Menu Items" ); refreshMenuItems = false; templatesManager.CreateTemplateMenuItems(); AmplifyShaderEditorWindow currWindow = UIUtils.CurrentWindow; int windowCount = IOUtils.AllOpenedWindows.Count; for (int windowIdx = 0; windowIdx < windowCount; windowIdx++) { UIUtils.CurrentWindow = IOUtils.AllOpenedWindows[windowIdx]; IOUtils.AllOpenedWindows[windowIdx].CurrentGraph.ForceCategoryRefresh(); } UIUtils.CurrentWindow = currWindow; } }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { if (!TemplatesManager.Initialized) { TemplatesManager.Init(); } bool refreshMenuItems = false; for (int i = 0; i < importedAssets.Length; i++) { if (TemplateHelperFunctions.CheckIfTemplate(importedAssets[i])) { refreshMenuItems = true; string guid = AssetDatabase.AssetPathToGUID(importedAssets[i]); TemplateDataParent templateData = TemplatesManager.GetTemplate(guid); if (templateData != null) { templateData.Reload(); } else { string name = TemplatesManager.OfficialTemplates.ContainsKey(guid) ? TemplatesManager.OfficialTemplates[guid] : string.Empty; TemplatesManager.AddTemplate(new TemplateMultiPass(name, guid)); } } } if (deletedAssets.Length > 0) { if (deletedAssets[0].IndexOf(Constants.InvalidPostProcessDatapath) < 0) { for (int i = 0; i < deletedAssets.Length; i++) { string guid = AssetDatabase.AssetPathToGUID(deletedAssets[i]); TemplateDataParent templateData = TemplatesManager.GetTemplate(guid); if (templateData != null) { // Close any window using that template int windowCount = IOUtils.AllOpenedWindows.Count; for (int windowIdx = 0; windowIdx < windowCount; windowIdx++) { TemplateMasterNode masterNode = IOUtils.AllOpenedWindows[windowIdx].CurrentGraph.CurrentMasterNode as TemplateMasterNode; if (masterNode != null && masterNode.CurrentTemplate.GUID.Equals(templateData.GUID)) { IOUtils.AllOpenedWindows[windowIdx].Close(); } } TemplatesManager.RemoveTemplate(templateData); refreshMenuItems = true; } } } } for (int i = 0; i < movedAssets.Length; i++) { if (TemplateHelperFunctions.CheckIfTemplate(movedAssets[i])) { refreshMenuItems = true; break; } } for (int i = 0; i < movedFromAssetPaths.Length; i++) { if (TemplateHelperFunctions.CheckIfTemplate(movedFromAssetPaths[i])) { refreshMenuItems = true; break; } } if (refreshMenuItems) { refreshMenuItems = false; TemplatesManager.CreateTemplateMenuItems(); int windowCount = IOUtils.AllOpenedWindows.Count; for (int windowIdx = 0; windowIdx < windowCount; windowIdx++) { IOUtils.AllOpenedWindows[windowIdx].CurrentGraph.ForceCategoryRefresh(); } } }