Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7befbeb005f98497e828793e65d518c1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
namespace Unity.VisualScripting
|
||||
{
|
||||
[Descriptor(typeof(StateUnit))]
|
||||
public class StateUnitDescriptor : NesterUnitDescriptor<StateUnit>
|
||||
{
|
||||
public StateUnitDescriptor(StateUnit unit) : base(unit) { }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 19529b57382684562940e410a8b7e385
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
namespace Unity.VisualScripting
|
||||
{
|
||||
[Editor(typeof(StateUnit))]
|
||||
public sealed class StateUnitEditor : NesterUnitEditor
|
||||
{
|
||||
public StateUnitEditor(Metadata metadata) : base(metadata) { }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1fa37d86e69c94da48f72c38e85a25f7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -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()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 07e0926bb74a646ad92846ce48b5074e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 32950f866b53a45b7b44696721d28303
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Add a link
Reference in a new issue