namespace Unity.VisualScripting { [GraphContextExtension(typeof(FlowGraphContext))] public sealed class FlowGraphContextStateExtension : GraphContextExtension { public FlowGraphContextStateExtension(FlowGraphContext context) : base(context) { } public override bool AcceptsDragAndDrop() { return DragAndDropUtility.Is(); } public override void PerformDragAndDrop() { var statemacro = DragAndDropUtility.Get(); var stateUnit = new StateUnit(statemacro); context.canvas.AddUnit(stateUnit, DragAndDropUtility.position); } public override void DrawDragAndDropPreview() { GraphGUI.DrawDragAndDropPreviewLabel(DragAndDropUtility.offsetedPosition, DragAndDropUtility.Get().name, typeof(StateGraphAsset).Icon()); } } }