Initial Commit

This commit is contained in:
Sebastian Cabrera 2021-08-02 05:44:37 -04:00
parent 53eb92e9af
commit 270ab7d11f
15341 changed files with 700234 additions and 0 deletions

View file

@ -0,0 +1,25 @@
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());
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7befbeb005f98497e828793e65d518c1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
namespace Unity.VisualScripting
{
[Descriptor(typeof(StateUnit))]
public class StateUnitDescriptor : NesterUnitDescriptor<StateUnit>
{
public StateUnitDescriptor(StateUnit unit) : base(unit) { }
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 19529b57382684562940e410a8b7e385
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,8 @@
namespace Unity.VisualScripting
{
[Editor(typeof(StateUnit))]
public sealed class StateUnitEditor : NesterUnitEditor
{
public StateUnitEditor(Metadata metadata) : base(metadata) { }
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1fa37d86e69c94da48f72c38e85a25f7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,41 @@
using UnityEditor;
using UnityEngine;
namespace Unity.VisualScripting
{
[Widget(typeof(StateUnit))]
public class StateUnitWidget : NestrerUnitWidget<StateUnit>, IDragAndDropHandler
{
public StateUnitWidget(FlowCanvas canvas, StateUnit unit) : base(canvas, unit) { }
public DragAndDropVisualMode dragAndDropVisualMode => DragAndDropVisualMode.Generic;
public bool AcceptsDragAndDrop()
{
return DragAndDropUtility.Is<StateGraphAsset>();
}
public void PerformDragAndDrop()
{
UndoUtility.RecordEditedObject("Drag & Drop Macro");
unit.nest.source = GraphSource.Macro;
unit.nest.macro = DragAndDropUtility.Get<StateGraphAsset>();
unit.nest.embed = null;
unit.Define();
GUI.changed = true;
}
public void UpdateDragAndDrop()
{
}
public void DrawDragAndDropPreview()
{
GraphGUI.DrawDragAndDropPreviewLabel(new Vector2(edgePosition.x, outerPosition.yMax), "Replace with: " + DragAndDropUtility.Get<StateGraphAsset>().name, typeof(StateGraphAsset).Icon());
}
public void ExitDragAndDrop()
{
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 07e0926bb74a646ad92846ce48b5074e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Linq;
namespace Unity.VisualScripting
{
[InitializeAfterPlugins]
public static class UnitBaseStateExtensions
{
static UnitBaseStateExtensions()
{
UnitBase.staticUnitsExtensions.Add(GetStaticOptions);
UnitBase.dynamicUnitsExtensions.Add(GetDynamicOptions);
UnitBase.contextualUnitsExtensions.Add(GetContextualOptions);
}
private static IEnumerable<IUnitOption> GetStaticOptions()
{
yield return StateUnit.WithStart().Option();
}
private static IEnumerable<IUnitOption> GetDynamicOptions()
{
var stateMacros = UnityAPI.Await(() => AssetUtility.GetAllAssetsOfType<StateGraphAsset>().ToArray());
foreach (var stateUnit in stateMacros.Select(statemacro => new StateUnit(statemacro)))
{
yield return stateUnit.Option();
}
}
private static IEnumerable<IUnitOption> GetContextualOptions(GraphReference reference)
{
yield break;
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 32950f866b53a45b7b44696721d28303
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: