Merge pull request #27 from taoria/working-in-process

Working in process
main
taoria 3 years ago committed by GitHub
commit 3284736643
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      EasyRandomGenerator.meta
  2. 84
      Scenes/SampleScene.unity
  3. 3
      TNode.meta
  4. 0
      TNode/TNodeCore.meta
  5. 0
      TNode/TNodeCore/Attribute.meta
  6. 0
      TNode/TNodeCore/Attribute/DisableOnInspector.cs
  7. 0
      TNode/TNodeCore/Attribute/DisableOnInspector.cs.meta
  8. 3
      TNode/TNodeCore/Attribute/GraphUsageAttribute.cs
  9. 0
      TNode/TNodeCore/Attribute/GraphUsageAttribute.cs.meta
  10. 0
      TNode/TNodeCore/Attribute/InternalUsageAttribute.cs
  11. 0
      TNode/TNodeCore/Attribute/InternalUsageAttribute.cs.meta
  12. 0
      TNode/TNodeCore/Attribute/NodeAttribute.cs
  13. 0
      TNode/TNodeCore/Attribute/NodeAttribute.cs.meta
  14. 0
      TNode/TNodeCore/Attribute/PortTypeConversion.cs
  15. 0
      TNode/TNodeCore/Attribute/PortTypeConversion.cs.meta
  16. 0
      TNode/TNodeCore/Attribute/Ports.meta
  17. 0
      TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs
  18. 0
      TNode/TNodeCore/Attribute/Ports/BatchInputAttribute.cs.meta
  19. 0
      TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs
  20. 0
      TNode/TNodeCore/Attribute/Ports/BatchOutputAttribute.cs.meta
  21. 0
      TNode/TNodeCore/Attribute/Ports/InputAttribute.cs
  22. 0
      TNode/TNodeCore/Attribute/Ports/InputAttribute.cs.meta
  23. 0
      TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs
  24. 0
      TNode/TNodeCore/Attribute/Ports/OutputAttribute.cs.meta
  25. 0
      TNode/TNodeCore/Attribute/Ports/PortAttribute.cs
  26. 0
      TNode/TNodeCore/Attribute/Ports/PortAttribute.cs.meta
  27. 0
      TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs
  28. 0
      TNode/TNodeCore/Attribute/RuntimeNodeAttribute.cs.meta
  29. 0
      TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs
  30. 0
      TNode/TNodeCore/Attribute/ShowInNodeViewAttribute.cs.meta
  31. 0
      TNode/TNodeCore/Attribute/ViewComponentAttribute.cs
  32. 0
      TNode/TNodeCore/Attribute/ViewComponentAttribute.cs.meta
  33. 3
      TNode/TNodeCore/Components.meta
  34. 46
      TNode/TNodeCore/Components/RuntimeDataSaver.cs
  35. 3
      TNode/TNodeCore/Components/RuntimeDataSaver.cs.meta
  36. 34
      TNode/TNodeCore/Components/RuntimeGraph.cs
  37. 0
      TNode/TNodeCore/Components/RuntimeGraph.cs.meta
  38. 6
      TNode/TNodeCore/DataWrapper.cs
  39. 0
      TNode/TNodeCore/DataWrapper.cs.meta
  40. 0
      TNode/TNodeCore/Editor.meta
  41. 0
      TNode/TNodeCore/Editor/Blackboard.meta
  42. 0
      TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs
  43. 0
      TNode/TNodeCore/Editor/Blackboard/IBlackboardView.cs.meta
  44. 0
      TNode/TNodeCore/Editor/EditorPersistence.meta
  45. 0
      TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs
  46. 0
      TNode/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs.meta
  47. 0
      TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs
  48. 0
      TNode/TNodeCore/Editor/EditorPersistence/GraphElementEditorData.cs.meta
  49. 0
      TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs
  50. 0
      TNode/TNodeCore/Editor/EditorPersistence/IGraphViewPersistence.cs.meta
  51. 0
      TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs
  52. 0
      TNode/TNodeCore/Editor/EditorPersistence/SubWindowEditorData.cs.meta
  53. 0
      TNode/TNodeCore/Editor/IGraphEditor.cs
  54. 0
      TNode/TNodeCore/Editor/IGraphEditor.cs.meta
  55. 0
      TNode/TNodeCore/Editor/Inspector.meta
  56. 0
      TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs
  57. 0
      TNode/TNodeCore/Editor/Inspector/INodeDataBinding.cs.meta
  58. 0
      TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs
  59. 0
      TNode/TNodeCore/Editor/Inspector/INodeDataBindingBase.cs.meta
  60. 0
      TNode/TNodeCore/Editor/NodeGraphView.meta
  61. 7
      TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs
  62. 0
      TNode/TNodeCore/Editor/NodeGraphView/IBaseDataGraphView.cs.meta
  63. 0
      TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs
  64. 0
      TNode/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs.meta
  65. 0
      TNode/TNodeCore/Editor/PropertyDrawer.meta
  66. 0
      TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs
  67. 0
      TNode/TNodeCore/Editor/PropertyDrawer/PropertyDrawer.cs.meta
  68. 0
      TNode/TNodeCore/Editor/Resources.meta
  69. 0
      TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset
  70. 0
      TNode/TNodeCore/Editor/Resources/DefaultNodeData.asset.meta
  71. 0
      TNode/TNodeCore/Editor/Resources/GraphEditor.uss
  72. 0
      TNode/TNodeCore/Editor/Resources/GraphEditor.uss.meta
  73. 0
      TNode/TNodeCore/Editor/Resources/GraphEditor.uxml
  74. 0
      TNode/TNodeCore/Editor/Resources/GraphEditor.uxml.meta
  75. 0
      TNode/TNodeCore/Editor/Resources/NodeInspector.uss
  76. 0
      TNode/TNodeCore/Editor/Resources/NodeInspector.uss.meta
  77. 0
      TNode/TNodeCore/Editor/Resources/NodeInspector.uxml
  78. 0
      TNode/TNodeCore/Editor/Resources/NodeInspector.uxml.meta
  79. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates.meta
  80. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt
  81. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraph.cs.txt.meta
  82. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt
  83. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphEditor.cs.txt.meta
  84. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt
  85. 0
      TNode/TNodeCore/Editor/Resources/ScriptTemplates/NewGraphView.cs.txt.meta
  86. 0
      TNode/TNodeCore/Editor/Serialization.meta
  87. 0
      TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs
  88. 0
      TNode/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs.meta
  89. 0
      TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs
  90. 0
      TNode/TNodeCore/Editor/Serialization/NodeDataWrapper.cs.meta
  91. 0
      TNode/TNodeCore/Editor/Tools.meta
  92. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator.meta
  93. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs
  94. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs.meta
  95. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss
  96. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uss.meta
  97. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml
  98. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.uxml.meta
  99. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs
  100. 0
      TNode/TNodeCore/Editor/Tools/GraphEditorCreator/SourceGeneratorForGraphEditor.cs.meta
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: cf0168c8ec1f9304c9872577b1e6abdf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -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

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 79f6cd5142e74b9daa463cad028297de
timeCreated: 1658748790

@ -1,6 +1,7 @@
using System;
using JetBrains.Annotations;
using TNodeCore.Models;
using TNodeCore.Runtime.Interfaces;
namespace TNodeCore.Attribute{
/// <summary>
@ -11,8 +12,8 @@ namespace TNodeCore.Attribute{
/// </example>
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
[BaseTypeRequired(typeof(IModel))]
[UsedImplicitly]
[MeansImplicitUse]
public class GraphUsageAttribute:System.Attribute{
public readonly Type GraphDataType;
public string Category;

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 732046b8ee564bd5be9be4ce908a011b
timeCreated: 1658710679

@ -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<string, object> 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<Dictionary<string, object>>(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);
}
}
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c4a377b7b5444bf08d3cf68b5a54daf5
timeCreated: 1658710701

@ -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<SceneNodeData> sceneNodes;
public readonly Dictionary<string, RuntimeNode> RuntimeNodes = new Dictionary<string, RuntimeNode>();
private GraphTool _graphTool;
private class GraphTool{
@ -20,6 +21,15 @@ namespace TNodeCore.Runtime{
/// elements are read only ,do not modify them
/// </summary>
public readonly Dictionary<string, RuntimeNode> 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<RuntimeNode> list, Dictionary<string, RuntimeNode> 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];
@ -161,6 +184,13 @@ namespace TNodeCore.Runtime{
_build = false;
}
public void Start(){
Build();
}
public virtual void RuntimeExecute(){
_graphTool.DirectlyTraversal();
}
}
public enum ProcessingStrategy{

@ -14,7 +14,7 @@ namespace TNodeCore{
return CreateInstance<TWrapper>();
}
if(Cache.ContainsKey(data)){
return Cache[data];
return Cache[data]==null?CreateInstance<TWrapper>():Cache[data];
}
var wrapper = CreateInstance<TWrapper>();
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);

@ -1,4 +1,6 @@
using TNodeCore.Models;
using System;
using TNodeCore.Components;
using TNodeCore.Models;
using TNodeCore.Runtime;
using UnityEngine;
@ -24,5 +26,8 @@ namespace TNodeCore.Editor.NodeGraphView{
public void SetGraphData(GraphData graph);
void NotifyRuntimeUpdate();
public Action AfterRuntimeGraphUpdate{ get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save