45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.VisualScripting
|
|
{
|
|
[Widget(typeof(FlowStateTransition))]
|
|
public sealed class FlowStateTransitionWidget : NesterStateTransitionWidget<FlowStateTransition>, IDragAndDropHandler
|
|
{
|
|
public FlowStateTransitionWidget(StateCanvas canvas, FlowStateTransition transition) : base(canvas, transition) { }
|
|
|
|
#region Drag & Drop
|
|
|
|
public DragAndDropVisualMode dragAndDropVisualMode => DragAndDropVisualMode.Generic;
|
|
|
|
public bool AcceptsDragAndDrop()
|
|
{
|
|
return DragAndDropUtility.Is<ScriptGraphAsset>();
|
|
}
|
|
|
|
public void PerformDragAndDrop()
|
|
{
|
|
UndoUtility.RecordEditedObject("Drag & Drop Macro");
|
|
transition.nest.source = GraphSource.Macro;
|
|
transition.nest.macro = DragAndDropUtility.Get<ScriptGraphAsset>();
|
|
transition.nest.embed = null;
|
|
GUI.changed = true;
|
|
}
|
|
|
|
public void UpdateDragAndDrop()
|
|
{
|
|
}
|
|
|
|
public void DrawDragAndDropPreview()
|
|
{
|
|
GraphGUI.DrawDragAndDropPreviewLabel(new Vector2(edgePosition.x, outerPosition.yMax), "Replace with: " + DragAndDropUtility.Get<ScriptGraphAsset>().name, typeof(ScriptGraphAsset).Icon());
|
|
}
|
|
|
|
public void ExitDragAndDrop()
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|