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