diff --git a/EasyRandomGenerator.meta b/EasyRandomGenerator.meta
deleted file mode 100644
index fb32c7a..0000000
--- a/EasyRandomGenerator.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: cf0168c8ec1f9304c9872577b1e6abdf
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Scenes/SampleScene.unity b/Scenes/SampleScene.unity
index 7c49f30..1b726a3 100644
--- a/Scenes/SampleScene.unity
+++ b/Scenes/SampleScene.unity
@@ -625,90 +625,6 @@ Transform:
m_Father: {fileID: 507038910}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1648230696
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1648230698}
- - component: {fileID: 1648230697}
- m_Layer: 0
- m_Name: Square
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!212 &1648230697
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1648230696}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- m_StaticShadowCaster: 0
- m_MotionVectors: 1
- m_LightProbeUsage: 1
- m_ReflectionProbeUsage: 1
- m_RayTracingMode: 0
- m_RayTraceProcedural: 0
- m_RenderingLayerMask: 1
- m_RendererPriority: 0
- m_Materials:
- - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
- m_StaticBatchInfo:
- firstSubMesh: 0
- subMeshCount: 0
- m_StaticBatchRoot: {fileID: 0}
- m_ProbeAnchor: {fileID: 0}
- m_LightProbeVolumeOverride: {fileID: 0}
- m_ScaleInLightmap: 1
- m_ReceiveGI: 1
- m_PreserveUVs: 0
- m_IgnoreNormalsForChartDetection: 0
- m_ImportantGI: 0
- m_StitchLightmapSeams: 1
- m_SelectedEditorRenderState: 0
- m_MinimumChartSize: 4
- m_AutoUVMaxDistance: 0.5
- m_AutoUVMaxAngle: 89
- m_LightmapParameters: {fileID: 0}
- m_SortingLayerID: 0
- m_SortingLayer: 0
- m_SortingOrder: 0
- m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 1, y: 1}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!4 &1648230698
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1648230696}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_RootOrder: 3
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1701140682
GameObject:
m_ObjectHideFlags: 0
diff --git a/TNode.meta b/TNode.meta
new file mode 100644
index 0000000..6fd0aeb
--- /dev/null
+++ b/TNode.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 79f6cd5142e74b9daa463cad028297de
+timeCreated: 1658748790
\ No newline at end of file
diff --git a/TNodeCore.meta b/TNode/TNodeCore.meta
similarity index 100%
rename from TNodeCore.meta
rename to TNode/TNodeCore.meta
diff --git a/TNodeCore/Attribute.meta b/TNode/TNodeCore/Attribute.meta
similarity index 100%
rename from TNodeCore/Attribute.meta
rename to TNode/TNodeCore/Attribute.meta
diff --git a/TNodeCore/Attribute/DisableOnInspector.cs b/TNode/TNodeCore/Attribute/DisableOnInspector.cs
similarity index 100%
rename from TNodeCore/Attribute/DisableOnInspector.cs
rename to TNode/TNodeCore/Attribute/DisableOnInspector.cs
diff --git a/TNodeCore/Attribute/DisableOnInspector.cs.meta b/TNode/TNodeCore/Attribute/DisableOnInspector.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/DisableOnInspector.cs.meta
rename to TNode/TNodeCore/Attribute/DisableOnInspector.cs.meta
diff --git a/TNodeCore/Attribute/GraphUsageAttribute.cs b/TNode/TNodeCore/Attribute/GraphUsageAttribute.cs
similarity index 93%
rename from TNodeCore/Attribute/GraphUsageAttribute.cs
rename to TNode/TNodeCore/Attribute/GraphUsageAttribute.cs
index 4eb9151..62ed03f 100644
--- a/TNodeCore/Attribute/GraphUsageAttribute.cs
+++ b/TNode/TNodeCore/Attribute/GraphUsageAttribute.cs
@@ -1,6 +1,7 @@
using System;
using JetBrains.Annotations;
using TNodeCore.Models;
+using TNodeCore.Runtime.Interfaces;
namespace TNodeCore.Attribute{
///
@@ -11,8 +12,8 @@ namespace TNodeCore.Attribute{
///
///
[AttributeUsage(AttributeTargets.Class)]
- [BaseTypeRequired(typeof(IModel))]
[UsedImplicitly]
+ [MeansImplicitUse]
public class GraphUsageAttribute:System.Attribute{
public readonly Type GraphDataType;
public string Category;
diff --git a/TNodeCore/Attribute/GraphUsageAttribute.cs.meta b/TNode/TNodeCore/Attribute/GraphUsageAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/GraphUsageAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/GraphUsageAttribute.cs.meta
diff --git a/TNodeCore/Attribute/InternalUsageAttribute.cs b/TNode/TNodeCore/Attribute/InternalUsageAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/InternalUsageAttribute.cs
rename to TNode/TNodeCore/Attribute/InternalUsageAttribute.cs
diff --git a/TNodeCore/Attribute/InternalUsageAttribute.cs.meta b/TNode/TNodeCore/Attribute/InternalUsageAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/InternalUsageAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/InternalUsageAttribute.cs.meta
diff --git a/TNodeCore/Attribute/NodeAttribute.cs b/TNode/TNodeCore/Attribute/NodeAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/NodeAttribute.cs
rename to TNode/TNodeCore/Attribute/NodeAttribute.cs
diff --git a/TNodeCore/Attribute/NodeAttribute.cs.meta b/TNode/TNodeCore/Attribute/NodeAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/NodeAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/NodeAttribute.cs.meta
diff --git a/TNodeCore/Attribute/PortTypeConversion.cs b/TNode/TNodeCore/Attribute/PortTypeConversion.cs
similarity index 100%
rename from TNodeCore/Attribute/PortTypeConversion.cs
rename to TNode/TNodeCore/Attribute/PortTypeConversion.cs
diff --git a/TNodeCore/Attribute/PortTypeConversion.cs.meta b/TNode/TNodeCore/Attribute/PortTypeConversion.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/PortTypeConversion.cs.meta
rename to TNode/TNodeCore/Attribute/PortTypeConversion.cs.meta
diff --git a/TNodeCore/Attribute/Ports.meta b/TNode/TNodeCore/Attribute/Ports.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports.meta
rename to TNode/TNodeCore/Attribute/Ports.meta
diff --git a/TNodeCore/Attribute/Ports/BatchInputAttribute.cs b/TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/Ports/BatchInputAttribute.cs
rename to TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs
diff --git a/TNodeCore/Attribute/Ports/BatchInputAttribute.cs.meta b/TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports/BatchInputAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs.meta
diff --git a/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs b/TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/Ports/BatchOutputAttribute.cs
rename to TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs
diff --git a/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs.meta b/TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports/BatchOutputAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs.meta
diff --git a/TNodeCore/Attribute/Ports/InputAttribute.cs b/TNode/TNodeCore/Attribute/Ports/InputAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/Ports/InputAttribute.cs
rename to TNode/TNodeCore/Attribute/Ports/InputAttribute.cs
diff --git a/TNodeCore/Attribute/Ports/InputAttribute.cs.meta b/TNode/TNodeCore/Attribute/Ports/InputAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports/InputAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/Ports/InputAttribute.cs.meta
diff --git a/TNodeCore/Attribute/Ports/OutputAttribute.cs b/TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/Ports/OutputAttribute.cs
rename to TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs
diff --git a/TNodeCore/Attribute/Ports/OutputAttribute.cs.meta b/TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports/OutputAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs.meta
diff --git a/TNodeCore/Attribute/Ports/PortAttribute.cs b/TNode/TNodeCore/Attribute/Ports/PortAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/Ports/PortAttribute.cs
rename to TNode/TNodeCore/Attribute/Ports/PortAttribute.cs
diff --git a/TNodeCore/Attribute/Ports/PortAttribute.cs.meta b/TNode/TNodeCore/Attribute/Ports/PortAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/Ports/PortAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/Ports/PortAttribute.cs.meta
diff --git a/TNodeCore/Attribute/RuntimeNodeAttribute.cs b/TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/RuntimeNodeAttribute.cs
rename to TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs
diff --git a/TNodeCore/Attribute/RuntimeNodeAttribute.cs.meta b/TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/RuntimeNodeAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs.meta
diff --git a/TNodeCore/Attribute/ShowInNodeViewAttribute.cs b/TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/ShowInNodeViewAttribute.cs
rename to TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs
diff --git a/TNodeCore/Attribute/ShowInNodeViewAttribute.cs.meta b/TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/ShowInNodeViewAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs.meta
diff --git a/TNodeCore/Attribute/ViewComponentAttribute.cs b/TNode/TNodeCore/Attribute/ViewComponentAttribute.cs
similarity index 100%
rename from TNodeCore/Attribute/ViewComponentAttribute.cs
rename to TNode/TNodeCore/Attribute/ViewComponentAttribute.cs
diff --git a/TNodeCore/Attribute/ViewComponentAttribute.cs.meta b/TNode/TNodeCore/Attribute/ViewComponentAttribute.cs.meta
similarity index 100%
rename from TNodeCore/Attribute/ViewComponentAttribute.cs.meta
rename to TNode/TNodeCore/Attribute/ViewComponentAttribute.cs.meta
diff --git a/TNode/TNodeCore/Components.meta b/TNode/TNodeCore/Components.meta
new file mode 100644
index 0000000..9f7628b
--- /dev/null
+++ b/TNode/TNodeCore/Components.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 732046b8ee564bd5be9be4ce908a011b
+timeCreated: 1658710679
\ No newline at end of file
diff --git a/TNode/TNodeCore/Components/RuntimeDataSaver.cs b/TNode/TNodeCore/Components/RuntimeDataSaver.cs
new file mode 100644
index 0000000..399907b
--- /dev/null
+++ b/TNode/TNodeCore/Components/RuntimeDataSaver.cs
@@ -0,0 +1,46 @@
+using System.Collections.Generic;
+using System.IO;
+using UnityEngine;
+
+namespace TNodeCore.Components{
+ public class RuntimeDataSaver:MonoBehaviour{
+ public string saveName;
+ public string saveExtension = "tng";
+ public Dictionary savedData = new();
+ public void Load(){
+ string path = Application.persistentDataPath + "/"+ saveName + "." + saveExtension;
+ if(!File.Exists(path)){
+ Debug.LogWarning("File not found: " + path);
+ return;
+ }
+ string json = File.ReadAllText(path);
+ savedData = JsonUtility.FromJson>(json);
+ }
+ public void Save(){
+ string path = Application.persistentDataPath + "/" + saveName + "." + saveExtension;
+ string json = JsonUtility.ToJson(savedData);
+ File.WriteAllText(path, json);
+ }
+
+ public void Write(string id,object o){
+ if (savedData.ContainsKey(id)){
+ savedData[id] = o;
+ }
+ else{
+ savedData.Add(id,o);
+ }
+ }
+
+ public object Read(string id){
+ return savedData.ContainsKey(id) ? savedData[id] : null;
+ }
+ public bool Has(string id){
+ return savedData.ContainsKey(id);
+ }
+ public void Remove(string id){
+ if (savedData.ContainsKey(id)){
+ savedData.Remove(id);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/TNode/TNodeCore/Components/RuntimeDataSaver.cs.meta b/TNode/TNodeCore/Components/RuntimeDataSaver.cs.meta
new file mode 100644
index 0000000..cad9fa5
--- /dev/null
+++ b/TNode/TNodeCore/Components/RuntimeDataSaver.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c4a377b7b5444bf08d3cf68b5a54daf5
+timeCreated: 1658710701
\ No newline at end of file
diff --git a/TNodeCore/Runtime/RuntimeGraph.cs b/TNode/TNodeCore/Components/RuntimeGraph.cs
similarity index 85%
rename from TNodeCore/Runtime/RuntimeGraph.cs
rename to TNode/TNodeCore/Components/RuntimeGraph.cs
index 11dd5c8..0cdd8ea 100644
--- a/TNodeCore/Runtime/RuntimeGraph.cs
+++ b/TNode/TNodeCore/Components/RuntimeGraph.cs
@@ -2,14 +2,15 @@
using System.Collections.Generic;
using System.Linq;
using TNodeCore.Models;
+using TNodeCore.Runtime;
using UnityEngine;
-namespace TNodeCore.Runtime{
+namespace TNodeCore.Components{
public class RuntimeGraph:MonoBehaviour{
public GraphData graphData;
+ public List sceneNodes;
public readonly Dictionary RuntimeNodes = new Dictionary();
-
private GraphTool _graphTool;
private class GraphTool{
@@ -20,6 +21,15 @@ namespace TNodeCore.Runtime{
/// elements are read only ,do not modify them
///
public readonly Dictionary RuntimeNodes;
+ public void DirectlyTraversal(){
+ foreach (var node in TopologicalOrder){
+ var links = node.InputLink;
+ foreach (var link in links){
+ HandlingLink(link);
+ }
+ node.NodeData.Process();
+ }
+ }
public void DependencyTraversal(RuntimeNode runtimeNode){
var links = runtimeNode.InputLink;
foreach (var link in links){
@@ -37,6 +47,7 @@ namespace TNodeCore.Runtime{
//out node is node output data
//in node is node receive data
var outValue = outNode.GetOutput(nodeLink.outPort.portEntryName);
+
inNode.SetInput(nodeLink.inPort.portEntryName, outValue);
}
public GraphTool(List list, Dictionary graphNodes){
@@ -91,6 +102,10 @@ namespace TNodeCore.Runtime{
Debug.Log("hi");
var nodeList = RuntimeNodes.Values;
_graphTool = new GraphTool(nodeList.ToList(),RuntimeNodes);
+ var sceneNodes = RuntimeNodes.Values.Where(x => x.NodeData is SceneNodeData).Select(x => x.NodeData as SceneNodeData);
+ foreach (var sceneNode in sceneNodes){
+ if (sceneNode != null) sceneNode.BlackboardData = runtimeBlackboardData;
+ }
_build = true;
}
@@ -118,6 +133,14 @@ namespace TNodeCore.Runtime{
_graphTool.DependencyTraversal(Get(startNode));
return true;
}
+ public bool ResolveDependency(){
+ if(!_build)
+ Build();
+ if (_graphTool == null)
+ return false;
+ _graphTool.DirectlyTraversal();
+ return true;
+ }
private void ModifyOrCreateInNode(NodeLink linkData){
var inNodeId = linkData.inPort.nodeDataId;
var inNode = graphData.NodeDictionary[inNodeId];
@@ -160,6 +183,13 @@ namespace TNodeCore.Runtime{
RuntimeNodes.Clear();
_build = false;
}
+
+ public void Start(){
+ Build();
+ }
+ public virtual void RuntimeExecute(){
+ _graphTool.DirectlyTraversal();
+ }
}
diff --git a/TNodeCore/Runtime/RuntimeGraph.cs.meta b/TNode/TNodeCore/Components/RuntimeGraph.cs.meta
similarity index 100%
rename from TNodeCore/Runtime/RuntimeGraph.cs.meta
rename to TNode/TNodeCore/Components/RuntimeGraph.cs.meta
diff --git a/TNodeCore/DataWrapper.cs b/TNode/TNodeCore/DataWrapper.cs
similarity index 91%
rename from TNodeCore/DataWrapper.cs
rename to TNode/TNodeCore/DataWrapper.cs
index 92ba218..30d1410 100644
--- a/TNodeCore/DataWrapper.cs
+++ b/TNode/TNodeCore/DataWrapper.cs
@@ -14,7 +14,7 @@ namespace TNodeCore{
return CreateInstance();
}
if(Cache.ContainsKey(data)){
- return Cache[data];
+ return Cache[data]==null?CreateInstance():Cache[data];
}
var wrapper = CreateInstance();
wrapper.data = data;
@@ -30,7 +30,9 @@ namespace TNodeCore{
fieldInfo.SetValue(data,value);
OnValueChanged?.Invoke(this);
}
-
+ public void ForceNotify(){
+ OnValueChanged?.Invoke(this);
+ }
public object GetValue(string path){
var fieldInfo = data.GetType().GetField(path);
return fieldInfo.GetValue(data);
diff --git a/TNodeCore/DataWrapper.cs.meta b/TNode/TNodeCore/DataWrapper.cs.meta
similarity index 100%
rename from TNodeCore/DataWrapper.cs.meta
rename to TNode/TNodeCore/DataWrapper.cs.meta
diff --git a/TNodeCore/Editor.meta b/TNode/TNodeCore/Editor.meta
similarity index 100%
rename from TNodeCore/Editor.meta
rename to TNode/TNodeCore/Editor.meta
diff --git a/TNodeCore/Editor/Blackboard.meta b/TNode/TNodeCore/Editor/Blackboard.meta
similarity index 100%
rename from TNodeCore/Editor/Blackboard.meta
rename to TNode/TNodeCore/Editor/Blackboard.meta
diff --git a/TNodeCore/Editor/Blackboard/IBlackboardView.cs b/TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs
similarity index 100%
rename from TNodeCore/Editor/Blackboard/IBlackboardView.cs
rename to TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs
diff --git a/TNodeCore/Editor/Blackboard/IBlackboardView.cs.meta b/TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Blackboard/IBlackboardView.cs.meta
rename to TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs.meta
diff --git a/TNodeCore/Editor/EditorPersistence.meta b/TNode/TNodeCore/Editor/EditorPersistence.meta
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence.meta
rename to TNode/TNodeCore/Editor/EditorPersistence.meta
diff --git a/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs b/TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/GraphEditorData.cs
rename to TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs
diff --git a/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs.meta b/TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs.meta
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/GraphEditorData.cs.meta
rename to TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs.meta
diff --git a/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs b/TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs
rename to TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs
diff --git a/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs.meta b/TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs.meta
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs.meta
rename to TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs.meta
diff --git a/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs b/TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs
rename to TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs
diff --git a/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs.meta b/TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs.meta
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs.meta
rename to TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs.meta
diff --git a/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs b/TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs
rename to TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs
diff --git a/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs.meta b/TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs.meta
similarity index 100%
rename from TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs.meta
rename to TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs.meta
diff --git a/TNodeCore/Editor/IGraphEditor.cs b/TNode/TNodeCore/Editor/IGraphEditor.cs
similarity index 100%
rename from TNodeCore/Editor/IGraphEditor.cs
rename to TNode/TNodeCore/Editor/IGraphEditor.cs
diff --git a/TNodeCore/Editor/IGraphEditor.cs.meta b/TNode/TNodeCore/Editor/IGraphEditor.cs.meta
similarity index 100%
rename from TNodeCore/Editor/IGraphEditor.cs.meta
rename to TNode/TNodeCore/Editor/IGraphEditor.cs.meta
diff --git a/TNodeCore/Editor/Inspector.meta b/TNode/TNodeCore/Editor/Inspector.meta
similarity index 100%
rename from TNodeCore/Editor/Inspector.meta
rename to TNode/TNodeCore/Editor/Inspector.meta
diff --git a/TNodeCore/Editor/Inspector/INodeDataBinding.cs b/TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs
similarity index 100%
rename from TNodeCore/Editor/Inspector/INodeDataBinding.cs
rename to TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs
diff --git a/TNodeCore/Editor/Inspector/INodeDataBinding.cs.meta b/TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Inspector/INodeDataBinding.cs.meta
rename to TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs.meta
diff --git a/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs b/TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs
similarity index 100%
rename from TNodeCore/Editor/Inspector/INodeDataBindingBase.cs
rename to TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs
diff --git a/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs.meta b/TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Inspector/INodeDataBindingBase.cs.meta
rename to TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs.meta
diff --git a/TNodeCore/Editor/NodeGraphView.meta b/TNode/TNodeCore/Editor/NodeGraphView.meta
similarity index 100%
rename from TNodeCore/Editor/NodeGraphView.meta
rename to TNode/TNodeCore/Editor/NodeGraphView.meta
diff --git a/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs b/TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
similarity index 81%
rename from TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
rename to TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
index 7e04299..0208be5 100644
--- a/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
+++ b/TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
@@ -1,4 +1,6 @@
-using TNodeCore.Models;
+using System;
+using TNodeCore.Components;
+using TNodeCore.Models;
using TNodeCore.Runtime;
using UnityEngine;
@@ -23,6 +25,9 @@ namespace TNodeCore.Editor.NodeGraphView{
public RuntimeGraph GetRuntimeGraph();
public void SetGraphData(GraphData graph);
-
+
+ void NotifyRuntimeUpdate();
+
+ public Action AfterRuntimeGraphUpdate{ get; set; }
}
}
\ No newline at end of file
diff --git a/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs.meta b/TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs.meta
similarity index 100%
rename from TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs.meta
rename to TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs.meta
diff --git a/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs b/TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs
similarity index 100%
rename from TNodeCore/Editor/NodeGraphView/IDataGraphView.cs
rename to TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs
diff --git a/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs.meta b/TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs.meta
similarity index 100%
rename from TNodeCore/Editor/NodeGraphView/IDataGraphView.cs.meta
rename to TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs.meta
diff --git a/TNodeCore/Editor/PropertyDrawer.meta b/TNode/TNodeCore/Editor/PropertyDrawer.meta
similarity index 100%
rename from TNodeCore/Editor/PropertyDrawer.meta
rename to TNode/TNodeCore/Editor/PropertyDrawer.meta
diff --git a/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs b/TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs
similarity index 100%
rename from TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs
rename to TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs
diff --git a/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs.meta b/TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs.meta
similarity index 100%
rename from TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs.meta
rename to TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs.meta
diff --git a/TNodeCore/Editor/Resources.meta b/TNode/TNodeCore/Editor/Resources.meta
similarity index 100%
rename from TNodeCore/Editor/Resources.meta
rename to TNode/TNodeCore/Editor/Resources.meta
diff --git a/TNodeCore/Editor/Resources/DefaultNodeData.asset b/TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset
similarity index 100%
rename from TNodeCore/Editor/Resources/DefaultNodeData.asset
rename to TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset
diff --git a/TNodeCore/Editor/Resources/DefaultNodeData.asset.meta b/TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/DefaultNodeData.asset.meta
rename to TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset.meta
diff --git a/TNodeCore/Editor/Resources/GraphEditor.uss b/TNode/TNodeCore/Editor/Resources/GraphEditor.uss
similarity index 100%
rename from TNodeCore/Editor/Resources/GraphEditor.uss
rename to TNode/TNodeCore/Editor/Resources/GraphEditor.uss
diff --git a/TNodeCore/Editor/Resources/GraphEditor.uss.meta b/TNode/TNodeCore/Editor/Resources/GraphEditor.uss.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/GraphEditor.uss.meta
rename to TNode/TNodeCore/Editor/Resources/GraphEditor.uss.meta
diff --git a/TNodeCore/Editor/Resources/GraphEditor.uxml b/TNode/TNodeCore/Editor/Resources/GraphEditor.uxml
similarity index 100%
rename from TNodeCore/Editor/Resources/GraphEditor.uxml
rename to TNode/TNodeCore/Editor/Resources/GraphEditor.uxml
diff --git a/TNodeCore/Editor/Resources/GraphEditor.uxml.meta b/TNode/TNodeCore/Editor/Resources/GraphEditor.uxml.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/GraphEditor.uxml.meta
rename to TNode/TNodeCore/Editor/Resources/GraphEditor.uxml.meta
diff --git a/TNodeCore/Editor/Resources/NodeInspector.uss b/TNode/TNodeCore/Editor/Resources/NodeInspector.uss
similarity index 100%
rename from TNodeCore/Editor/Resources/NodeInspector.uss
rename to TNode/TNodeCore/Editor/Resources/NodeInspector.uss
diff --git a/TNodeCore/Editor/Resources/NodeInspector.uss.meta b/TNode/TNodeCore/Editor/Resources/NodeInspector.uss.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/NodeInspector.uss.meta
rename to TNode/TNodeCore/Editor/Resources/NodeInspector.uss.meta
diff --git a/TNodeCore/Editor/Resources/NodeInspector.uxml b/TNode/TNodeCore/Editor/Resources/NodeInspector.uxml
similarity index 100%
rename from TNodeCore/Editor/Resources/NodeInspector.uxml
rename to TNode/TNodeCore/Editor/Resources/NodeInspector.uxml
diff --git a/TNodeCore/Editor/Resources/NodeInspector.uxml.meta b/TNode/TNodeCore/Editor/Resources/NodeInspector.uxml.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/NodeInspector.uxml.meta
rename to TNode/TNodeCore/Editor/Resources/NodeInspector.uxml.meta
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates.meta b/TNode/TNodeCore/Editor/Resources/ScriptTemplates.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates.meta
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates.meta
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt.meta b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt.meta
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt.meta
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt.meta b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt.meta
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt.meta
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt
diff --git a/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt.meta b/TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt.meta
similarity index 100%
rename from TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt.meta
rename to TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt.meta
diff --git a/TNodeCore/Editor/Serialization.meta b/TNode/TNodeCore/Editor/Serialization.meta
similarity index 100%
rename from TNodeCore/Editor/Serialization.meta
rename to TNode/TNodeCore/Editor/Serialization.meta
diff --git a/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs b/TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs
similarity index 100%
rename from TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs
rename to TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs
diff --git a/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs.meta b/TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs.meta
rename to TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs.meta
diff --git a/TNodeCore/Editor/Serialization/NodeDataWrapper.cs b/TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs
similarity index 100%
rename from TNodeCore/Editor/Serialization/NodeDataWrapper.cs
rename to TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs
diff --git a/TNodeCore/Editor/Serialization/NodeDataWrapper.cs.meta b/TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Serialization/NodeDataWrapper.cs.meta
rename to TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs.meta
diff --git a/TNodeCore/Editor/Tools.meta b/TNode/TNodeCore/Editor/Tools.meta
similarity index 100%
rename from TNodeCore/Editor/Tools.meta
rename to TNode/TNodeCore/Editor/Tools.meta
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator.meta b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator.meta
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator.meta
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs.meta b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs.meta
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs.meta
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss.meta b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss.meta
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss.meta
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml.meta b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml.meta
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml.meta
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs
diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs.meta b/TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs.meta
rename to TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs.meta
diff --git a/TNodeCore/Editor/Tools/NodeCreator.meta b/TNode/TNodeCore/Editor/Tools/NodeCreator.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/NodeCreator.meta
rename to TNode/TNodeCore/Editor/Tools/NodeCreator.meta
diff --git a/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs b/TNode/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs
similarity index 100%
rename from TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs
rename to TNode/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs
diff --git a/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs.meta b/TNode/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs.meta
similarity index 100%
rename from TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs.meta
rename to TNode/TNodeCore/Editor/Tools/NodeCreator/NodeCreator.cs.meta
diff --git a/TNodeCore/GraphEditor.cs b/TNode/TNodeCore/GraphEditor.cs
similarity index 100%
rename from TNodeCore/GraphEditor.cs
rename to TNode/TNodeCore/GraphEditor.cs
diff --git a/TNodeCore/GraphEditor.cs.meta b/TNode/TNodeCore/GraphEditor.cs.meta
similarity index 100%
rename from TNodeCore/GraphEditor.cs.meta
rename to TNode/TNodeCore/GraphEditor.cs.meta
diff --git a/TNodeCore/Models.meta b/TNode/TNodeCore/Models.meta
similarity index 100%
rename from TNodeCore/Models.meta
rename to TNode/TNodeCore/Models.meta
diff --git a/TNodeCore/Models/BlackboardData.cs b/TNode/TNodeCore/Models/BlackboardData.cs
similarity index 100%
rename from TNodeCore/Models/BlackboardData.cs
rename to TNode/TNodeCore/Models/BlackboardData.cs
diff --git a/TNodeCore/Models/BlackboardData.cs.meta b/TNode/TNodeCore/Models/BlackboardData.cs.meta
similarity index 100%
rename from TNodeCore/Models/BlackboardData.cs.meta
rename to TNode/TNodeCore/Models/BlackboardData.cs.meta
diff --git a/TNodeCore/Models/BlackboardDragNodeData.cs b/TNode/TNodeCore/Models/BlackboardDragNodeData.cs
similarity index 87%
rename from TNodeCore/Models/BlackboardDragNodeData.cs
rename to TNode/TNodeCore/Models/BlackboardDragNodeData.cs
index 883464a..335164c 100644
--- a/TNodeCore/Models/BlackboardDragNodeData.cs
+++ b/TNode/TNodeCore/Models/BlackboardDragNodeData.cs
@@ -7,9 +7,8 @@ using UnityEngine;
namespace TNodeCore.Models{
[Serializable]
[InternalUsage]
- public class BlackboardDragNodeData:RuntimeNodeData{
+ public class BlackboardDragNodeData:SceneNodeData{
public string blackDragData;
-
///
/// it's very hacky way to get blackboard data ,even when the value is null,type info is not null!
///
@@ -23,7 +22,8 @@ namespace TNodeCore.Models{
}
[Serializable]
- public class RuntimeNodeData:NodeData{
+ public class SceneNodeData:NodeData{
+
public BlackboardData BlackboardData{ get; set; }
diff --git a/TNodeCore/Models/BlackboardDragNodeData.cs.meta b/TNode/TNodeCore/Models/BlackboardDragNodeData.cs.meta
similarity index 100%
rename from TNodeCore/Models/BlackboardDragNodeData.cs.meta
rename to TNode/TNodeCore/Models/BlackboardDragNodeData.cs.meta
diff --git a/TNodeCore/Models/GraphData.cs b/TNode/TNodeCore/Models/GraphData.cs
similarity index 100%
rename from TNodeCore/Models/GraphData.cs
rename to TNode/TNodeCore/Models/GraphData.cs
diff --git a/TNodeCore/Models/GraphData.cs.meta b/TNode/TNodeCore/Models/GraphData.cs.meta
similarity index 100%
rename from TNodeCore/Models/GraphData.cs.meta
rename to TNode/TNodeCore/Models/GraphData.cs.meta
diff --git a/TNodeCore/Models/IModel.cs b/TNode/TNodeCore/Models/IModel.cs
similarity index 100%
rename from TNodeCore/Models/IModel.cs
rename to TNode/TNodeCore/Models/IModel.cs
diff --git a/TNodeCore/Models/IModel.cs.meta b/TNode/TNodeCore/Models/IModel.cs.meta
similarity index 100%
rename from TNodeCore/Models/IModel.cs.meta
rename to TNode/TNodeCore/Models/IModel.cs.meta
diff --git a/TNodeCore/Models/NodeData.cs b/TNode/TNodeCore/Models/NodeData.cs
similarity index 100%
rename from TNodeCore/Models/NodeData.cs
rename to TNode/TNodeCore/Models/NodeData.cs
diff --git a/TNodeCore/Models/NodeData.cs.meta b/TNode/TNodeCore/Models/NodeData.cs.meta
similarity index 100%
rename from TNodeCore/Models/NodeData.cs.meta
rename to TNode/TNodeCore/Models/NodeData.cs.meta
diff --git a/TNodeCore/Models/NodeLink.cs b/TNode/TNodeCore/Models/NodeLink.cs
similarity index 100%
rename from TNodeCore/Models/NodeLink.cs
rename to TNode/TNodeCore/Models/NodeLink.cs
diff --git a/TNodeCore/Models/NodeLink.cs.meta b/TNode/TNodeCore/Models/NodeLink.cs.meta
similarity index 100%
rename from TNodeCore/Models/NodeLink.cs.meta
rename to TNode/TNodeCore/Models/NodeLink.cs.meta
diff --git a/TNodeCore/Models/PortInfo.cs b/TNode/TNodeCore/Models/PortInfo.cs
similarity index 100%
rename from TNodeCore/Models/PortInfo.cs
rename to TNode/TNodeCore/Models/PortInfo.cs
diff --git a/TNodeCore/Models/PortInfo.cs.meta b/TNode/TNodeCore/Models/PortInfo.cs.meta
similarity index 100%
rename from TNodeCore/Models/PortInfo.cs.meta
rename to TNode/TNodeCore/Models/PortInfo.cs.meta
diff --git a/TNodeCore/Models/SceneObjectWrapper.cs b/TNode/TNodeCore/Models/SceneObjectWrapper.cs
similarity index 100%
rename from TNodeCore/Models/SceneObjectWrapper.cs
rename to TNode/TNodeCore/Models/SceneObjectWrapper.cs
diff --git a/TNodeCore/Models/SceneObjectWrapper.cs.meta b/TNode/TNodeCore/Models/SceneObjectWrapper.cs.meta
similarity index 100%
rename from TNodeCore/Models/SceneObjectWrapper.cs.meta
rename to TNode/TNodeCore/Models/SceneObjectWrapper.cs.meta
diff --git a/TNodeCore/Runtime.meta b/TNode/TNodeCore/Runtime.meta
similarity index 100%
rename from TNodeCore/Runtime.meta
rename to TNode/TNodeCore/Runtime.meta
diff --git a/TNodeCore/Runtime/Interfaces.meta b/TNode/TNodeCore/Runtime/Interfaces.meta
similarity index 100%
rename from TNodeCore/Runtime/Interfaces.meta
rename to TNode/TNodeCore/Runtime/Interfaces.meta
diff --git a/TNode/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs b/TNode/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs
new file mode 100644
index 0000000..4633e26
--- /dev/null
+++ b/TNode/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs
@@ -0,0 +1,7 @@
+namespace TNodeCore.Runtime.Interfaces{
+
+ public abstract class PortTypeConversion{
+ public abstract TTo Convert(TFrom tFrom);
+ }
+
+}
\ No newline at end of file
diff --git a/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs.meta b/TNode/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs.meta
similarity index 100%
rename from TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs.meta
rename to TNode/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs.meta
diff --git a/TNodeCore/Runtime/RuntimeNode.cs b/TNode/TNodeCore/Runtime/RuntimeNode.cs
similarity index 72%
rename from TNodeCore/Runtime/RuntimeNode.cs
rename to TNode/TNodeCore/Runtime/RuntimeNode.cs
index e4b435a..d73fef0 100644
--- a/TNodeCore/Runtime/RuntimeNode.cs
+++ b/TNode/TNodeCore/Runtime/RuntimeNode.cs
@@ -5,6 +5,7 @@ using Codice.Client.Common.TreeGrouper;
using TNodeCore.Attribute.Ports;
using TNodeCore.Models;
using TNodeCore.RuntimeCache;
+using UnityEngine;
namespace TNodeCore.Runtime{
public class RuntimeNode{
@@ -18,7 +19,22 @@ namespace TNodeCore.Runtime{
public Type NodeType => _type;
public void SetInput(string portName,object value){
- _portAccessors[portName].SetValue(this.NodeData,value);
+ var valueType = value.GetType();
+ var portType = _portAccessors[portName].Type;
+ Debug.Log(valueType);
+ Debug.Log(portType);
+ if(portType!=valueType && !portType.IsAssignableFrom(valueType)){
+ var res =RuntimeCache.RuntimeCache.Instance.GetConvertedValue(valueType, portType, value);
+ _portAccessors[portName].SetValue(this.NodeData, res);
+ }
+ else{
+
+ _portAccessors[portName].SetValue(this.NodeData,value);
+ }
+
+
+
+
}
public object GetOutput(string portName){
diff --git a/TNodeCore/Runtime/RuntimeNode.cs.meta b/TNode/TNodeCore/Runtime/RuntimeNode.cs.meta
similarity index 100%
rename from TNodeCore/Runtime/RuntimeNode.cs.meta
rename to TNode/TNodeCore/Runtime/RuntimeNode.cs.meta
diff --git a/TNodeCore/Runtime/Runtimeblackboard.cs b/TNode/TNodeCore/Runtime/Runtimeblackboard.cs
similarity index 100%
rename from TNodeCore/Runtime/Runtimeblackboard.cs
rename to TNode/TNodeCore/Runtime/Runtimeblackboard.cs
diff --git a/TNodeCore/Runtime/Runtimeblackboard.cs.meta b/TNode/TNodeCore/Runtime/Runtimeblackboard.cs.meta
similarity index 100%
rename from TNodeCore/Runtime/Runtimeblackboard.cs.meta
rename to TNode/TNodeCore/Runtime/Runtimeblackboard.cs.meta
diff --git a/TNodeCore/Runtime/SceneSerializedData.cs b/TNode/TNodeCore/Runtime/SceneSerializedData.cs
similarity index 100%
rename from TNodeCore/Runtime/SceneSerializedData.cs
rename to TNode/TNodeCore/Runtime/SceneSerializedData.cs
diff --git a/TNodeCore/Runtime/SceneSerializedData.cs.meta b/TNode/TNodeCore/Runtime/SceneSerializedData.cs.meta
similarity index 100%
rename from TNodeCore/Runtime/SceneSerializedData.cs.meta
rename to TNode/TNodeCore/Runtime/SceneSerializedData.cs.meta
diff --git a/TNodeCore/RuntimeCache.meta b/TNode/TNodeCore/RuntimeCache.meta
similarity index 100%
rename from TNodeCore/RuntimeCache.meta
rename to TNode/TNodeCore/RuntimeCache.meta
diff --git a/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs b/TNode/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs
similarity index 82%
rename from TNodeCore/RuntimeCache/IModelPropertyAccessor.cs
rename to TNode/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs
index 88a5cae..081caac 100644
--- a/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs
+++ b/TNode/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs
@@ -4,5 +4,9 @@ namespace TNodeCore.RuntimeCache{
public interface IModelPropertyAccessor{
object GetValue(object model);
void SetValue(object model, object value);
+
+ public Type Type{ get; set; }
+
+
}
}
\ No newline at end of file
diff --git a/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs.meta b/TNode/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs.meta
similarity index 100%
rename from TNodeCore/RuntimeCache/IModelPropertyAccessor.cs.meta
rename to TNode/TNodeCore/RuntimeCache/IModelPropertyAccessor.cs.meta
diff --git a/TNodeCore/RuntimeCache/RuntimeCache.cs b/TNode/TNodeCore/RuntimeCache/RuntimeCache.cs
similarity index 90%
rename from TNodeCore/RuntimeCache/RuntimeCache.cs
rename to TNode/TNodeCore/RuntimeCache/RuntimeCache.cs
index edae640..8d0a3e6 100644
--- a/TNodeCore/RuntimeCache/RuntimeCache.cs
+++ b/TNode/TNodeCore/RuntimeCache/RuntimeCache.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
-using PlasticPipe.PlasticProtocol.Messages;
using TNodeCore.Attribute;
using TNodeCore.Models;
using TNodeCore.Runtime.Interfaces;
@@ -14,8 +13,10 @@ namespace TNodeCore.RuntimeCache{
public readonly Action Set;
public PropAccessor(string propName){
Type t = typeof(T1);
+
MethodInfo getter = t.GetMethod("get_" + propName);
MethodInfo setter = t.GetMethod("set_" + propName);
+ Type = getter?.ReturnType??setter?.GetParameters()[0].ParameterType;
if(getter!=null)
Get = (Func)Delegate.CreateDelegate(typeof(Func), null, getter);
if(setter!=null)
@@ -32,12 +33,14 @@ namespace TNodeCore.RuntimeCache{
public void SetValue(object model, object value){
Set((T1)model,(T2)value);
}
+
+ public Type Type{ get; set; }
}
internal class PortConverterHelper : IPortConverterHelper{
- private readonly IPortTypeConversion _converter;
+ private readonly PortTypeConversion _converter;
public PortConverterHelper(Type type){
- _converter = Activator.CreateInstance(type) as IPortTypeConversion;
+ _converter = Activator.CreateInstance(type) as PortTypeConversion;
}
public object Convert(object value){
return _converter.Convert((T1)value);
@@ -116,23 +119,31 @@ namespace TNodeCore.RuntimeCache{
CacheRuntimeNodeData(type);
}
//Check if the type is implementing IPortTypeConversion
- if(typeof(IPortTypeConversion<,>).IsAssignableFrom(type)){
+ if(type.BaseType is{IsGenericType: true} && type.BaseType.GetGenericTypeDefinition()==typeof(PortTypeConversion<,>)){
//if it is, add it to the cache
+ Debug.Log("find conversion");
CacheRuntimePortTypeConversion(type);
}
+ else{
+ Debug.Log(type);
+ }
}
private void CacheRuntimePortTypeConversion(Type type){
- if (type.IsGenericType == false){
- return;
+ if (type.BaseType != null){
+ var genericType = type.BaseType.GetGenericTypeDefinition();
+ if (genericType != typeof(PortTypeConversion<,>)){
+ return;
+ }
}
- var genericType = type.GetGenericTypeDefinition();
- if (genericType != typeof(IPortTypeConversion<,>)){
+ else{
return;
}
- var type1 = type.GetGenericArguments()[0];
- var type2 = type.GetGenericArguments()[1];
+ var type1 = type.BaseType.GetGenericArguments()[0];
+ var type2 = type.BaseType.GetGenericArguments()[1];
+ Debug.Log(type1);
+ Debug.Log(type2);
var specificType = typeof(PortConverterHelper<,>).MakeGenericType(type1, type2);
var instance = Activator.CreateInstance(specificType, type) as IPortConverterHelper;
if (instance == null){
@@ -256,8 +267,9 @@ namespace TNodeCore.RuntimeCache{
return (T) method.Invoke(data);
}
public static object GetValue(this IModel data, string path,Type type=null){
- var method = RuntimeCache.Instance.CachedDelegatesForGettingValue[type??data.GetType()][path];
- return method.Invoke(data);
+ var dic = RuntimeCache.Instance.CachedDelegatesForGettingValue[type ?? data.GetType()];
+ var method = dic.ContainsKey(path) ? dic[path] : null;
+ return method?.Invoke(data);
}
public static void SetValue(this IModel data,string path,T value,Type type=null){
diff --git a/TNodeCore/RuntimeCache/RuntimeCache.cs.meta b/TNode/TNodeCore/RuntimeCache/RuntimeCache.cs.meta
similarity index 100%
rename from TNodeCore/RuntimeCache/RuntimeCache.cs.meta
rename to TNode/TNodeCore/RuntimeCache/RuntimeCache.cs.meta
diff --git a/TNodeCore/TNodeCore.asmdef b/TNode/TNodeCore/TNodeCore.asmdef
similarity index 100%
rename from TNodeCore/TNodeCore.asmdef
rename to TNode/TNodeCore/TNodeCore.asmdef
diff --git a/TNodeCore/TNodeCore.asmdef.meta b/TNode/TNodeCore/TNodeCore.asmdef.meta
similarity index 100%
rename from TNodeCore/TNodeCore.asmdef.meta
rename to TNode/TNodeCore/TNodeCore.asmdef.meta
diff --git a/TNodeGraphViewImpl.meta b/TNode/TNodeGraphViewImpl.meta
similarity index 100%
rename from TNodeGraphViewImpl.meta
rename to TNode/TNodeGraphViewImpl.meta
diff --git a/TNodeGraphViewImpl/Editor.meta b/TNode/TNodeGraphViewImpl/Editor.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor.meta
rename to TNode/TNodeGraphViewImpl/Editor.meta
diff --git a/TNodeGraphViewImpl/Editor/Cache.meta b/TNode/TNodeGraphViewImpl/Editor/Cache.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Cache.meta
rename to TNode/TNodeGraphViewImpl/Editor/Cache.meta
diff --git a/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs b/TNode/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs
rename to TNode/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs
diff --git a/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs.meta b/TNode/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs
similarity index 86%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs
index e37882f..51ed7d9 100644
--- a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs
@@ -1,4 +1,5 @@
-using UnityEditor.Experimental.GraphView;
+using UnityEditor;
+using UnityEditor.Experimental.GraphView;
namespace TNodeGraphViewImpl.Editor.GraphBlackboard{
public class BlackboardField:UnityEditor.Experimental.GraphView.BlackboardField{
@@ -6,7 +7,5 @@ namespace TNodeGraphViewImpl.Editor.GraphBlackboard{
public BlackboardField(BlackboardProperty.BlackboardProperty blackboardProperty):base(null,blackboardProperty.PropertyName,null){
BlackboardProperty = blackboardProperty;
}
-
-
}
}
\ No newline at end of file
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardField.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/BlackboardProperty/BlackboardProperty.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
similarity index 96%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
index 499bc5c..5d83a5c 100644
--- a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs
@@ -32,9 +32,9 @@ namespace TNodeGraphViewImpl.Editor.GraphBlackboard{
VisualElement visualElement = new VisualElement();
var propertyField = new BlackboardField(new BlackboardProperty.BlackboardProperty(field.Name,field.FieldType));
var foldoutData = new Foldout{
- text = field.Name
+ text = ObjectNames.NicifyVariableName(field.Name)
};
- var drawer = new GraphBlackboardPropertyField(serializedObject.FindProperty("data").FindPropertyRelative(field.Name),field.Name,isRuntimeGraph);
+ var drawer = new GraphBlackboardPropertyField(serializedObject.FindProperty("data").FindPropertyRelative(field.Name),isRuntimeGraph);
drawer.Bind(serializedObject);
foldoutData.Add(drawer);
visualElement.Add(propertyField);
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs
similarity index 87%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs
index 33c40e6..75e4b2c 100644
--- a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs
@@ -6,7 +6,7 @@ namespace TNodeGraphViewImpl.Editor.GraphBlackboard{
public class GraphBlackboardPropertyField:PropertyField{
private readonly bool _runtime;
- public GraphBlackboardPropertyField(SerializedProperty findPropertyRelative, string fieldName,bool runtime):base(findPropertyRelative, fieldName){
+ public GraphBlackboardPropertyField(SerializedProperty findPropertyRelative,bool runtime):base(findPropertyRelative){
_runtime = runtime;
}
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardPropertyField.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs
diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/Inspector.meta b/TNode/TNodeGraphViewImpl/Editor/Inspector.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Inspector.meta
rename to TNode/TNodeGraphViewImpl/Editor/Inspector.meta
diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs b/TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs
rename to TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs
diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs.meta b/TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspector.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs b/TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
similarity index 90%
rename from TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
rename to TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
index 1c03a31..8581d05 100644
--- a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs
@@ -51,7 +51,12 @@ namespace TNode.Editor.Inspector{
var showInNodeViewAttribute = field.GetCustomAttribute() != null;
if (!showInNodeViewAttribute)
continue;
- var drawer = new PropertyField(serializedObject.FindProperty("data").FindPropertyRelative(field.Name),field.Name);
+ var drawer = new PropertyField(serializedObject.FindProperty("data").FindPropertyRelative(field.Name));
+ drawer.RegisterValueChangeCallback((evt) => {
+ serializedObject.Update();
+ serializedObject.ApplyModifiedProperties();
+ ((NodeDataWrapper)_data).ForceNotify();
+ });
drawer.Bind(serializedObject);
Add(drawer);
diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs.meta b/TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView.meta b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeGraphView.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeGraphView.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
similarity index 95%
rename from TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
rename to TNode/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
index 49b4e97..c16e838 100644
--- a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs
@@ -2,7 +2,9 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
+using System.Threading.Tasks;
using TNode.Editor.Inspector;
+using TNodeCore.Components;
using TNodeCore.Editor.Blackboard;
using TNodeCore.Editor.EditorPersistence;
using TNodeCore.Editor.NodeGraphView;
@@ -14,6 +16,7 @@ using TNodeEditor.Editor;
using TNodeGraphViewImpl.Editor.Cache;
using TNodeGraphViewImpl.Editor.NodeViews;
using TNodeGraphViewImpl.Editor.Search;
+using Unity.VisualScripting;
using UnityEditor;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
@@ -32,6 +35,8 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
private NodeInspector _nodeInspector;
private Dictionary _nodeDict = new();
private IBlackboardView _blackboard;
+ private bool _runtimeGraphUpdate;
+
public T Data{
get{ return _data; }
set{
@@ -106,8 +111,7 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
_runtimeGraph = gameObject.GetComponent();
IsRuntimeGraph = true;
-
-
+ BuildRuntimeGraphBehaviour();
Data = gameObject.GetComponent().graphData as T;
if(Data==null){
Debug.LogError($"Dragged a wrong graph data to editor,expected {typeof(T)} but got {gameObject.GetComponent().graphData.GetType()}");
@@ -143,6 +147,28 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
}
};
}
+
+ private void BuildRuntimeGraphBehaviour(){
+ EditorApplication.update+= UpdateRuntimeGraphBehaviour;
+
+ }
+
+ private void UpdateRuntimeGraphBehaviour(){
+ if(_runtimeGraph != null){
+ if (_runtimeGraphUpdate){
+ _runtimeGraphUpdate = false;
+ _runtimeGraph.ResolveDependency();
+
+ AfterRuntimeGraphUpdate?.Invoke();
+ }
+
+
+ }
+ else{
+ EditorApplication.update -= UpdateRuntimeGraphBehaviour;
+ }
+ }
+
private void CheckDataAfterInit(){
if(Data == null){
WaitingForAGraph();
@@ -259,7 +285,7 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
//Get the node type
var nodeType = dataNode.GetType();
//Get the derived type of NodeAttribute View from the node type
- if (dataNode is RuntimeNodeData runtimeNodeData){
+ if (dataNode is SceneNodeData runtimeNodeData){
runtimeNodeData.BlackboardData = GetBlackboardData();
}
var nodePos = Owner.graphEditorData.graphElementsData.
@@ -421,7 +447,6 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
if (supportedTypes != null){
compatiblePorts.AddRange(ports.Where(x => supportedTypes.Contains(x.portType)).ToList());
}
-
return compatiblePorts;
@@ -521,6 +546,13 @@ namespace TNodeGraphViewImpl.Editor.NodeGraphView{
Data = graph as T;
}
+ public void NotifyRuntimeUpdate(){
+
+ _runtimeGraphUpdate = true;
+ }
+
+ public Action AfterRuntimeGraphUpdate{ get; set; }
+
#endregion
}
diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs
rename to TNode/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs
diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs.meta b/TNode/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeGraphView/SimpleGraphSubWindow.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeViews.meta b/TNode/TNodeGraphViewImpl/Editor/NodeViews.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeViews.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs b/TNode/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/DefaultNodeView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs b/TNode/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
similarity index 77%
rename from TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
index a48bb79..4ab71dc 100644
--- a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs
@@ -26,19 +26,10 @@ namespace TNode.Editor.NodeViews{
var serializedData = new SerializedObject(blackboardWrapper);
var serializedProperty = serializedData.FindProperty("data").FindPropertyRelative(obj.blackDragData);
- //
- // field.Bind(serializedData);
- // var p = label.parent.parent.parent;
- // p.Add(field);
- // field.SendToBack();
- // field.SetEnabled(false);
- // p.style.alignItems = Align.Center;
- // p.style.justifyContent = Justify.Center;
- // p.style.paddingTop = 0;
- // p.style.paddingBottom = 0;
- label.text = obj.blackDragData;
+ label.text = ObjectNames.NicifyVariableName(obj.blackDragData);
+
//Get serialized property's icon
- var icon = AssetPreview.GetMiniThumbnail(serializedProperty.objectReferenceValue);
+ var icon = AssetPreview.GetMiniThumbnail(serializedProperty.boxedValue as UnityEngine.Object);
label.parent.Add(new Image(){
image = icon
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs b/TNode/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
similarity index 96%
rename from TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
index c3bef2f..8fac55f 100644
--- a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs
@@ -7,6 +7,7 @@ using TNodeCore.Attribute.Ports;
using TNodeCore.Editor.NodeGraphView;
using TNodeCore.Editor.Serialization;
using TNodeCore.Models;
+using UnityEditor;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.UIElements;
@@ -19,7 +20,7 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
public IBaseDataGraphView BaseDataGraphView{
get{
- var visualElement = this.GetFirstAncestorOfType() as IBaseDataGraphView;
+ var visualElement = this.GetFirstAncestorOfType();
return visualElement;
}
}
@@ -38,6 +39,9 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
private void OnDataValueChanged(DataWrapper obj){
Refresh();
+ if (BaseDataGraphView.IsRuntimeGraph){
+ BaseDataGraphView.NotifyRuntimeUpdate();
+ }
}
public sealed override string title{
get => base.title;
@@ -103,7 +107,7 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{
if (propertyInfo.GetCustomAttributes(typeof(OutputAttribute),true).FirstOrDefault() is OutputAttribute attribute){
Port port = InstantiatePort(Orientation.Horizontal, Direction.Output,Port.Capacity.Multi,BuildPortType(attribute,propertyInfo));
this.outputContainer.Add(port);
- var portName = BuildPortName(attribute,propertyInfo);
+ var portName = ObjectNames.NicifyVariableName(BuildPortName(attribute,propertyInfo));
port.portName = portName;
port.name = propertyInfo.Name;
diff --git a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs.meta b/TNode/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/Resources.meta b/TNode/TNodeGraphViewImpl/Editor/Resources.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources.meta
rename to TNode/TNodeGraphViewImpl/Editor/Resources.meta
diff --git a/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss b/TNode/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss
rename to TNode/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss
diff --git a/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss.meta b/TNode/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss.meta
rename to TNode/TNodeGraphViewImpl/Editor/Resources/DragNodeStyle.uss.meta
diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss b/TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss
rename to TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss
diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss.meta b/TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss.meta
rename to TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewBackground.uss.meta
diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss b/TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss
rename to TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss
diff --git a/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta b/TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta
rename to TNode/TNodeGraphViewImpl/Editor/Resources/GraphViewPropertyField.uss.meta
diff --git a/TNodeGraphViewImpl/Editor/Search.meta b/TNode/TNodeGraphViewImpl/Editor/Search.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Search.meta
rename to TNode/TNodeGraphViewImpl/Editor/Search.meta
diff --git a/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs b/TNode/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs
rename to TNode/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs
diff --git a/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs.meta b/TNode/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs.meta
diff --git a/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs b/TNode/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs
similarity index 97%
rename from TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs
rename to TNode/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs
index d2f2af7..28cf940 100644
--- a/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs
+++ b/TNode/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs
@@ -54,7 +54,7 @@ namespace TNodeGraphViewImpl.Editor.Search{
if (typeof(NodeData).IsAssignableFrom(type)){
//Make an instance of the type
if (NodeCreator.InstantiateNodeData(type) is { } nodeData){
- nodeData.nodeName = $"New {type.Name}";
+ nodeData.nodeName = $"{type.Name}";
((IBaseDataGraphView) _graphView).AddTNode(nodeData, new Rect(localPos.x, localPos.y, 100, 100));
}
}
diff --git a/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs.meta b/TNode/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs.meta
similarity index 100%
rename from TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs.meta
rename to TNode/TNodeGraphViewImpl/Editor/Search/NodeSearchWindowProvider.cs.meta
diff --git a/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs b/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs
deleted file mode 100644
index 29b4277..0000000
--- a/TNodeCore/Runtime/Interfaces/IPortTypeConversion.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace TNodeCore.Runtime.Interfaces{
-
- public interface IPortTypeConversion{
- public TTo Convert(TFrom tFrom);
- }
-
-}
\ No newline at end of file