diff options
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/ContextMenuItem.cs')
-rw-r--r-- | Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/ContextMenuItem.cs | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/ContextMenuItem.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/ContextMenuItem.cs new file mode 100644 index 00000000..4834ee1f --- /dev/null +++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Menu/ContextMenuItem.cs @@ -0,0 +1,81 @@ +// Amplify Shader Editor - Visual Shader Editing Tool +// Copyright (c) Amplify Creations, Lda <info@amplify.pt> + +using System; +using UnityEngine; + +namespace AmplifyShaderEditor +{ + public class ContextMenuItem + { + private const string PALETTE_NAME_MOD_STR = " "; + + private string m_paletteName; + private string m_name; + private string m_tags; + private string m_category; + private string m_description; + private System.Type m_type; + private GUIContent m_guiContent; + private string m_nameWithShortcut; + private AmplifyShaderFunction m_function; + private NodeAttributes m_nodeAttributes; + + public ContextMenuItem( NodeAttributes nodeAttributes, System.Type type, string name, string tags, string category, string description, AmplifyShaderFunction function, KeyCode shortcut ) + { + m_nodeAttributes = nodeAttributes; + m_name = name; + m_tags = name + ( string.IsNullOrEmpty( tags ) ? "" : " " + tags ); + m_tags = m_tags.ToLower(); + m_nameWithShortcut = shortcut != KeyCode.None ? ( name + " [ " + UIUtils.KeyCodeToString( shortcut ) + " ]" ) : name; + m_paletteName = PALETTE_NAME_MOD_STR + m_name; + m_type = type; + m_category = category; + m_description = description; + m_function = function; + m_guiContent = new GUIContent( m_nameWithShortcut, m_description ); + } + + public int CompareTo( ContextMenuItem item , bool useWeights ) + { + if ( useWeights && NodeAttributes.SortOrderPriority > -1 && item.NodeAttributes.SortOrderPriority > -1 ) + { + if ( NodeAttributes.SortOrderPriority > item.NodeAttributes.SortOrderPriority ) + { + return 1; + } + else if ( NodeAttributes.SortOrderPriority == item.NodeAttributes.SortOrderPriority ) + { + return m_name.CompareTo( item.Name ); + } + else + { + return -1; + } + } + return m_name.CompareTo( item.Name ); + } + + public string PaletteName { get { return m_paletteName; } } + public string Name { get { return m_name; } } + public string Tags { get { return m_tags; } } + public string NameWithShortcut { get { return m_nameWithShortcut; } } + public string Category { get { return m_category; } } + public string Description { get { return m_description; } } + public AmplifyShaderFunction Function { get { return m_function; } } + public System.Type NodeType { get { return m_type; } } + public GUIContent ItemUIContent { get { return m_guiContent; } } + public NodeAttributes NodeAttributes { get { return m_nodeAttributes; } } + + public override string ToString() + { + return m_name + ":" + m_category + ":" + m_description; + } + + public void Destroy() + { + m_guiContent = null; + m_nodeAttributes = null; + } + } +} |