Files
CartoonRPG/Library/PackageCache/com.unity.visualeffectgraph@2973a8ac1070/Editor/GraphView/Views/VFXSaveDropdownButton.cs
Caleb Sandford deQuincey 02c4b5ab66 Adding in new packages
2025-06-05 22:59:18 +01:00

57 lines
1.6 KiB
C#

using System.IO;
using UnityEditor.Experimental;
using UnityEngine;
using UnityEngine.UIElements;
namespace UnityEditor.VFX.UI
{
class VFXSaveDropdownButton : DropDownButtonBase
{
public VFXSaveDropdownButton(VFXView vfxView)
: base(
nameof(VFXSaveDropdownButton),
vfxView,
"VFXSaveDropDownPanel",
"Save",
"save-button",
EditorResources.iconsPath + "SaveActive.png",
false,
true)
{
var saveAsButton = m_PopupContent.Q<Button>("saveAs");
saveAsButton.clicked += OnSaveAs;
var selectButton = m_PopupContent.Q<Button>("showInInspector");
selectButton.clicked += OnSelectAsset;
}
protected override Vector2 GetPopupSize() => new(150, 56);
protected override void OnMainButton()
{
m_VFXView.OnSave();
}
void OnSaveAs()
{
var originalPath = AssetDatabase.GetAssetPath(m_VFXView.controller.model);
var extension = Path.GetExtension(originalPath).Trim('.');
var newFilePath = EditorUtility.SaveFilePanelInProject("Save VFX Graph As...", Path.GetFileNameWithoutExtension(originalPath), extension, "", Path.GetDirectoryName(originalPath));
if (!string.IsNullOrEmpty(newFilePath))
{
m_VFXView.SaveAs(newFilePath);
}
ClosePopup();
}
void OnSelectAsset()
{
m_VFXView.SelectAsset();
}
}
}