internal static void AddMainTextureMenuOptions(ContextualMenuPopulateEvent evt, Texture2DShaderProperty texProp, GraphData graphData, Action inspectorUpdateAction) { if (!graphData.isSubGraph) { if (!texProp.isMainTexture) { evt.menu.AppendAction( "Set as Main Texture", e => { Texture2DShaderProperty tex = graphData.GetMainTexture(); // There's already a main texture, ask the user if they want to change and toggle the old one to not be main if (tex != null) { if (EditorUtility.DisplayDialog("Change Main Texture Action", $"Are you sure you want to change the Main Texture from {tex.displayName} to {texProp.displayName}?", "Yes", "Cancel")) { graphData.owner.RegisterCompleteObjectUndo("Change Main Texture"); tex.isMainTexture = false; texProp.isMainTexture = true; inspectorUpdateAction(); } return; } graphData.owner.RegisterCompleteObjectUndo("Set Main Texture"); texProp.isMainTexture = true; inspectorUpdateAction(); }); } else { evt.menu.AppendAction( "Clear Main Texture", e => { graphData.owner.RegisterCompleteObjectUndo("Clear Main Texture"); texProp.isMainTexture = false; inspectorUpdateAction(); }); } } }