From 31bb16bc466b5713d01f4953bccc99aa5138148d Mon Sep 17 00:00:00 2001 From: taoria <445625470@qq.com> Date: Thu, 18 Aug 2022 14:29:32 +0800 Subject: [PATCH] refactor:just another refactor --- .../GraphCreator.meta => GraphCreator.meta | 0 .../GraphCreator => GraphCreator}/Editor.meta | 0 .../Editor/GraphCreator.cs | 0 .../Editor/GraphCreator.cs.meta | 0 .../Runtime.meta | 0 .../Runtime/Blackboard.meta | 0 .../Runtime/Blackboard/GraphMetaBlackboard.cs | 0 .../Blackboard/GraphMetaBlackboard.cs.meta | 0 .../Runtime/GraphMetaNode.cs | 0 .../Runtime/GraphMetaNode.cs.meta | 0 .../Runtime/MetaGraph.cs | 0 .../Runtime/MetaGraph.cs.meta | 0 .../Runtime/Nodes.meta | 0 .../Runtime/Nodes/GraphMetaNode.cs | 0 .../Runtime/Nodes/GraphMetaNode.cs.meta | 0 TNodeCore/Editor/Binding/IModelBinding.cs | 2 +- .../Editor/Blackboard/IBlackboardView.cs | 2 +- TNodeCore/Editor/CommentView/CommentView.cs | 8 +- .../DeveloperHelper/CleanMissingTypeHelper.cs | 2 +- .../EditorPersistence/GraphEditorData.cs | 4 +- TNodeCore/Editor/GraphData.cs | 5 + TNodeCore/Editor/GraphData.cs.meta | 3 + TNodeCore/Editor/GraphEditor.cs | 1 - TNodeCore/Editor/Models/Comment.cs | 5 +- TNodeCore/Editor/Models/PlacematModel.cs | 3 +- .../Editor/NodeGraphView/IDataGraphView.cs | 3 +- .../Serialization/BlackboardDataWrapper.cs | 2 +- .../Editor/Serialization/NodeDataWrapper.cs | 2 +- .../Editor/Taoria.TNodeCore.Editor.asmdef | 16 +++ .../Taoria.TNodeCore.Editor.asmdef.meta | 3 + .../GraphEditorCreator/GraphEditorCreator.cs | 1 - .../Runtime/Attributes/Ports/PortAttribute.cs | 9 ++ TNodeCore/{ => Runtime}/Extensions.meta | 0 .../Extensions/ArrayExtensions.cs | 0 .../Extensions/ArrayExtensions.cs.meta | 0 .../SerializedPropertyExtensions.cs | 0 .../SerializedPropertyExtensions.cs.meta | 0 .../{Editor => Runtime}/Models/EditorModel.cs | 0 .../Models/EditorModel.cs.meta | 0 TNodeCore/Runtime/Models/GraphData.cs | 6 +- .../Models/GraphViewModel.cs | 0 .../Models/GraphViewModel.cs.meta | 0 .../Runtime/Taoria.TNodeCore.Runtime.asmdef | 3 + .../Taoria.TNodeCore.Runtime.asmdef.meta} | 0 TNodeCore/TNodeCore.asmdef | 3 - .../Editor/Cache/NodeEditorExtensions.cs | 4 +- .../DefaultGraphBlackboardView.cs | 2 +- .../GraphBlackboard/GraphBlackboardView.cs | 2 +- .../Editor/Inspector/NodeInspectorInNode.cs | 2 +- .../Editor/NodeGraphView/DataGraphView.cs | 7 +- .../Editor/NodeViews/DragNodeView.cs | 2 +- .../Editor/NodeViews/NodeView.cs | 133 +++++++++++++++--- .../Editor/Placemats/PlacematView.cs | 1 + .../Search/BlackboardSearchWindowProvider.cs | 2 +- TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef | 3 +- Tests.meta | 3 + TilemapGenerator.meta | 8 -- 57 files changed, 187 insertions(+), 65 deletions(-) rename TNodeCore/GraphCreator.meta => GraphCreator.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Editor.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Editor/GraphCreator.cs (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Editor/GraphCreator.cs.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Blackboard.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Blackboard/GraphMetaBlackboard.cs (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Blackboard/GraphMetaBlackboard.cs.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/GraphMetaNode.cs (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/GraphMetaNode.cs.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/MetaGraph.cs (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/MetaGraph.cs.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Nodes.meta (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Nodes/GraphMetaNode.cs (100%) rename {TNodeCore/GraphCreator => GraphCreator}/Runtime/Nodes/GraphMetaNode.cs.meta (100%) create mode 100644 TNodeCore/Editor/GraphData.cs create mode 100644 TNodeCore/Editor/GraphData.cs.meta create mode 100644 TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef create mode 100644 TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef.meta rename TNodeCore/{ => Runtime}/Extensions.meta (100%) rename TNodeCore/{ => Runtime}/Extensions/ArrayExtensions.cs (100%) rename TNodeCore/{ => Runtime}/Extensions/ArrayExtensions.cs.meta (100%) rename TNodeCore/{ => Runtime}/Extensions/SerializedPropertyExtensions.cs (100%) rename TNodeCore/{ => Runtime}/Extensions/SerializedPropertyExtensions.cs.meta (100%) rename TNodeCore/{Editor => Runtime}/Models/EditorModel.cs (100%) rename TNodeCore/{Editor => Runtime}/Models/EditorModel.cs.meta (100%) rename TNodeCore/{Editor => Runtime}/Models/GraphViewModel.cs (100%) rename TNodeCore/{Editor => Runtime}/Models/GraphViewModel.cs.meta (100%) create mode 100644 TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef rename TNodeCore/{TNodeCore.asmdef.meta => Runtime/Taoria.TNodeCore.Runtime.asmdef.meta} (100%) delete mode 100644 TNodeCore/TNodeCore.asmdef create mode 100644 Tests.meta delete mode 100644 TilemapGenerator.meta diff --git a/TNodeCore/GraphCreator.meta b/GraphCreator.meta similarity index 100% rename from TNodeCore/GraphCreator.meta rename to GraphCreator.meta diff --git a/TNodeCore/GraphCreator/Editor.meta b/GraphCreator/Editor.meta similarity index 100% rename from TNodeCore/GraphCreator/Editor.meta rename to GraphCreator/Editor.meta diff --git a/TNodeCore/GraphCreator/Editor/GraphCreator.cs b/GraphCreator/Editor/GraphCreator.cs similarity index 100% rename from TNodeCore/GraphCreator/Editor/GraphCreator.cs rename to GraphCreator/Editor/GraphCreator.cs diff --git a/TNodeCore/GraphCreator/Editor/GraphCreator.cs.meta b/GraphCreator/Editor/GraphCreator.cs.meta similarity index 100% rename from TNodeCore/GraphCreator/Editor/GraphCreator.cs.meta rename to GraphCreator/Editor/GraphCreator.cs.meta diff --git a/TNodeCore/GraphCreator/Runtime.meta b/GraphCreator/Runtime.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime.meta rename to GraphCreator/Runtime.meta diff --git a/TNodeCore/GraphCreator/Runtime/Blackboard.meta b/GraphCreator/Runtime/Blackboard.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Blackboard.meta rename to GraphCreator/Runtime/Blackboard.meta diff --git a/TNodeCore/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs b/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs rename to GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs diff --git a/TNodeCore/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs.meta b/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs.meta rename to GraphCreator/Runtime/Blackboard/GraphMetaBlackboard.cs.meta diff --git a/TNodeCore/GraphCreator/Runtime/GraphMetaNode.cs b/GraphCreator/Runtime/GraphMetaNode.cs similarity index 100% rename from TNodeCore/GraphCreator/Runtime/GraphMetaNode.cs rename to GraphCreator/Runtime/GraphMetaNode.cs diff --git a/TNodeCore/GraphCreator/Runtime/GraphMetaNode.cs.meta b/GraphCreator/Runtime/GraphMetaNode.cs.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/GraphMetaNode.cs.meta rename to GraphCreator/Runtime/GraphMetaNode.cs.meta diff --git a/TNodeCore/GraphCreator/Runtime/MetaGraph.cs b/GraphCreator/Runtime/MetaGraph.cs similarity index 100% rename from TNodeCore/GraphCreator/Runtime/MetaGraph.cs rename to GraphCreator/Runtime/MetaGraph.cs diff --git a/TNodeCore/GraphCreator/Runtime/MetaGraph.cs.meta b/GraphCreator/Runtime/MetaGraph.cs.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/MetaGraph.cs.meta rename to GraphCreator/Runtime/MetaGraph.cs.meta diff --git a/TNodeCore/GraphCreator/Runtime/Nodes.meta b/GraphCreator/Runtime/Nodes.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Nodes.meta rename to GraphCreator/Runtime/Nodes.meta diff --git a/TNodeCore/GraphCreator/Runtime/Nodes/GraphMetaNode.cs b/GraphCreator/Runtime/Nodes/GraphMetaNode.cs similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Nodes/GraphMetaNode.cs rename to GraphCreator/Runtime/Nodes/GraphMetaNode.cs diff --git a/TNodeCore/GraphCreator/Runtime/Nodes/GraphMetaNode.cs.meta b/GraphCreator/Runtime/Nodes/GraphMetaNode.cs.meta similarity index 100% rename from TNodeCore/GraphCreator/Runtime/Nodes/GraphMetaNode.cs.meta rename to GraphCreator/Runtime/Nodes/GraphMetaNode.cs.meta diff --git a/TNodeCore/Editor/Binding/IModelBinding.cs b/TNodeCore/Editor/Binding/IModelBinding.cs index 90527cd..ad171b8 100644 --- a/TNodeCore/Editor/Binding/IModelBinding.cs +++ b/TNodeCore/Editor/Binding/IModelBinding.cs @@ -1,4 +1,4 @@ -namespace TNode.TNodeCore.Editor.Binding{ +namespace TNodeCore.Editor.Binding{ public interface IModelBinding{ public T Data{ get; } public void Bind(T data); diff --git a/TNodeCore/Editor/Blackboard/IBlackboardView.cs b/TNodeCore/Editor/Blackboard/IBlackboardView.cs index 75f0586..0cade0a 100644 --- a/TNodeCore/Editor/Blackboard/IBlackboardView.cs +++ b/TNodeCore/Editor/Blackboard/IBlackboardView.cs @@ -2,7 +2,7 @@ using TNodeCore.Runtime.Models; using UnityEditor; -namespace TNode.TNodeCore.Editor.Blackboard{ +namespace TNodeCore.Editor.Blackboard{ /// /// View of the blackboard,different in each implementation,but the same in the interface. /// diff --git a/TNodeCore/Editor/CommentView/CommentView.cs b/TNodeCore/Editor/CommentView/CommentView.cs index d2bc620..72e79cd 100644 --- a/TNodeCore/Editor/CommentView/CommentView.cs +++ b/TNodeCore/Editor/CommentView/CommentView.cs @@ -1,12 +1,10 @@ -using System; -using TNode.TNodeCore.Editor.Binding; -using TNode.TNodeCore.Editor.Models; -using TNodeCore.Editor.NodeGraphView; +using TNodeCore.Editor.Binding; +using TNodeCore.Editor.Models; using UnityEditor.Experimental.GraphView; using UnityEngine; using UnityEngine.UIElements; -namespace TNode.TNodeCore.Editor.CommentView{ +namespace TNodeCore.Editor.CommentView{ public class CommentView:GraphElement,IModelBinding{ public Comment Data => _data; private Comment _data; diff --git a/TNodeCore/Editor/DeveloperHelper/CleanMissingTypeHelper.cs b/TNodeCore/Editor/DeveloperHelper/CleanMissingTypeHelper.cs index 753d2de..a3429ca 100644 --- a/TNodeCore/Editor/DeveloperHelper/CleanMissingTypeHelper.cs +++ b/TNodeCore/Editor/DeveloperHelper/CleanMissingTypeHelper.cs @@ -3,7 +3,7 @@ using UnityEditor; using UnityEngine; using UnityEngine.SceneManagement; -namespace TNode.TNodeCore.Editor.DeveloperHelper{ +namespace TNodeCore.Editor.DeveloperHelper{ /// /// Helper options works on 2021.3 on newer unity versions only.call this in the early version may not work /// diff --git a/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs b/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs index 91b31f8..e4e6924 100644 --- a/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs +++ b/TNodeCore/Editor/EditorPersistence/GraphEditorData.cs @@ -1,12 +1,10 @@ using System; -using System.Collections.Generic; -using TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Runtime.Models; using UnityEngine; using UnityEngine.Serialization; -namespace TNode.TNodeCore.Editor.EditorPersistence{ +namespace TNodeCore.Editor.EditorPersistence{ /// /// Graph Editor Data hold the config of a type of graph. /// it's used by a graph editor to determine which implementation to use and some other config may be stored in here some days later. diff --git a/TNodeCore/Editor/GraphData.cs b/TNodeCore/Editor/GraphData.cs new file mode 100644 index 0000000..c0db30b --- /dev/null +++ b/TNodeCore/Editor/GraphData.cs @@ -0,0 +1,5 @@ +namespace TNodeCore.Editor{ + + + +} \ No newline at end of file diff --git a/TNodeCore/Editor/GraphData.cs.meta b/TNodeCore/Editor/GraphData.cs.meta new file mode 100644 index 0000000..38451cb --- /dev/null +++ b/TNodeCore/Editor/GraphData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7532ed1b593c4a28bd499d79dfd12ca5 +timeCreated: 1660803680 \ No newline at end of file diff --git a/TNodeCore/Editor/GraphEditor.cs b/TNodeCore/Editor/GraphEditor.cs index 82c371c..c19e081 100644 --- a/TNodeCore/Editor/GraphEditor.cs +++ b/TNodeCore/Editor/GraphEditor.cs @@ -1,4 +1,3 @@ -using TNode.TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Runtime.Models; diff --git a/TNodeCore/Editor/Models/Comment.cs b/TNodeCore/Editor/Models/Comment.cs index 8143709..030f3e0 100644 --- a/TNodeCore/Editor/Models/Comment.cs +++ b/TNodeCore/Editor/Models/Comment.cs @@ -1,7 +1,8 @@ -using TNodeCore.Runtime.Models; +using TNode.TNodeCore.Editor.Models; +using TNodeCore.Runtime.Models; using UnityEngine; -namespace TNode.TNodeCore.Editor.Models{ +namespace TNodeCore.Editor.Models{ public class Comment:EditorModel{ [SerializeReference] public Model CommentedModel; diff --git a/TNodeCore/Editor/Models/PlacematModel.cs b/TNodeCore/Editor/Models/PlacematModel.cs index 3362023..c698c7c 100644 --- a/TNodeCore/Editor/Models/PlacematModel.cs +++ b/TNodeCore/Editor/Models/PlacematModel.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; +using TNode.TNodeCore.Editor.Models; using TNodeCore.Runtime.Models; using UnityEngine; -namespace TNode.TNodeCore.Editor.Models{ +namespace TNodeCore.Editor.Models{ /// /// Placemats hold the nodes /// diff --git a/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs b/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs index 49f342a..9dc4815 100644 --- a/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs +++ b/TNodeCore/Editor/NodeGraphView/IDataGraphView.cs @@ -1,5 +1,4 @@ -using TNode.TNodeCore.Editor.EditorPersistence; -using TNodeCore.Editor.EditorPersistence; +using TNodeCore.Editor.EditorPersistence; using TNodeCore.Runtime.Models; namespace TNodeCore.Editor.NodeGraphView{ diff --git a/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs b/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs index bcf02ee..38a19c0 100644 --- a/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs +++ b/TNodeCore/Editor/Serialization/BlackboardDataWrapper.cs @@ -1,7 +1,7 @@ using TNodeCore.Runtime; using TNodeCore.Runtime.Models; -namespace TNode.TNodeCore.Editor.Serialization{ +namespace TNodeCore.Editor.Serialization{ public class BlackboardDataWrapper:DataWrapper{ } } \ No newline at end of file diff --git a/TNodeCore/Editor/Serialization/NodeDataWrapper.cs b/TNodeCore/Editor/Serialization/NodeDataWrapper.cs index 4d913fd..f827bd4 100644 --- a/TNodeCore/Editor/Serialization/NodeDataWrapper.cs +++ b/TNodeCore/Editor/Serialization/NodeDataWrapper.cs @@ -1,7 +1,7 @@ using TNodeCore.Runtime; using TNodeCore.Runtime.Models; -namespace TNode.TNodeCore.Editor.Serialization{ +namespace TNodeCore.Editor.Serialization{ public class NodeDataWrapper:DataWrapper{ } diff --git a/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef b/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef new file mode 100644 index 0000000..c30e247 --- /dev/null +++ b/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Taoria.TNodeCore.Editor", + "rootNamespace": "", + "references": [ + "GUID:940af72691767fa47be979e5dbcf6ba0" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef.meta b/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef.meta new file mode 100644 index 0000000..373acff --- /dev/null +++ b/TNodeCore/Editor/Taoria.TNodeCore.Editor.asmdef.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 646fd469059c44c3b9215226d5e1e13c +timeCreated: 1660803651 \ No newline at end of file diff --git a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs b/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs index 04100ce..e6531a7 100644 --- a/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs +++ b/TNodeCore/Editor/Tools/GraphEditorCreator/GraphEditorCreator.cs @@ -1,6 +1,5 @@ using System.IO; using System.Text.RegularExpressions; -using TNode.TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.EditorPersistence; using UnityEditor; using UnityEngine; diff --git a/TNodeCore/Runtime/Attributes/Ports/PortAttribute.cs b/TNodeCore/Runtime/Attributes/Ports/PortAttribute.cs index c4327b4..c4b0b07 100644 --- a/TNodeCore/Runtime/Attributes/Ports/PortAttribute.cs +++ b/TNodeCore/Runtime/Attributes/Ports/PortAttribute.cs @@ -37,7 +37,16 @@ namespace TNodeCore.Runtime.Attributes.Ports{ public readonly string Name; public readonly PortNameHandling NameHandling; public Type HandledType; + /// + /// Allow multiple input or output to or from this node + /// public bool Multiple = true; + /// + /// Treat the according as Group Port,making each element inside the collection a port. + /// + + public bool Group = false; + public string TypePath; public TypeHandling TypeHandling{ get; set; } diff --git a/TNodeCore/Extensions.meta b/TNodeCore/Runtime/Extensions.meta similarity index 100% rename from TNodeCore/Extensions.meta rename to TNodeCore/Runtime/Extensions.meta diff --git a/TNodeCore/Extensions/ArrayExtensions.cs b/TNodeCore/Runtime/Extensions/ArrayExtensions.cs similarity index 100% rename from TNodeCore/Extensions/ArrayExtensions.cs rename to TNodeCore/Runtime/Extensions/ArrayExtensions.cs diff --git a/TNodeCore/Extensions/ArrayExtensions.cs.meta b/TNodeCore/Runtime/Extensions/ArrayExtensions.cs.meta similarity index 100% rename from TNodeCore/Extensions/ArrayExtensions.cs.meta rename to TNodeCore/Runtime/Extensions/ArrayExtensions.cs.meta diff --git a/TNodeCore/Extensions/SerializedPropertyExtensions.cs b/TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs similarity index 100% rename from TNodeCore/Extensions/SerializedPropertyExtensions.cs rename to TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs diff --git a/TNodeCore/Extensions/SerializedPropertyExtensions.cs.meta b/TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs.meta similarity index 100% rename from TNodeCore/Extensions/SerializedPropertyExtensions.cs.meta rename to TNodeCore/Runtime/Extensions/SerializedPropertyExtensions.cs.meta diff --git a/TNodeCore/Editor/Models/EditorModel.cs b/TNodeCore/Runtime/Models/EditorModel.cs similarity index 100% rename from TNodeCore/Editor/Models/EditorModel.cs rename to TNodeCore/Runtime/Models/EditorModel.cs diff --git a/TNodeCore/Editor/Models/EditorModel.cs.meta b/TNodeCore/Runtime/Models/EditorModel.cs.meta similarity index 100% rename from TNodeCore/Editor/Models/EditorModel.cs.meta rename to TNodeCore/Runtime/Models/EditorModel.cs.meta diff --git a/TNodeCore/Runtime/Models/GraphData.cs b/TNodeCore/Runtime/Models/GraphData.cs index ef423e6..400ba9e 100644 --- a/TNodeCore/Runtime/Models/GraphData.cs +++ b/TNodeCore/Runtime/Models/GraphData.cs @@ -43,8 +43,7 @@ namespace TNodeCore.Runtime.Models{ NodeDictionary.Add(node.id,node); } } - - #if UNITY_EDITOR +#if UNITY_EDITOR [SerializeReference] protected List editorModels ; [FormerlySerializedAs("graphViewData")] [SerializeReference] @@ -65,7 +64,8 @@ namespace TNodeCore.Runtime.Models{ } set => graphViewModel = value; } - #endif +#endif + } diff --git a/TNodeCore/Editor/Models/GraphViewModel.cs b/TNodeCore/Runtime/Models/GraphViewModel.cs similarity index 100% rename from TNodeCore/Editor/Models/GraphViewModel.cs rename to TNodeCore/Runtime/Models/GraphViewModel.cs diff --git a/TNodeCore/Editor/Models/GraphViewModel.cs.meta b/TNodeCore/Runtime/Models/GraphViewModel.cs.meta similarity index 100% rename from TNodeCore/Editor/Models/GraphViewModel.cs.meta rename to TNodeCore/Runtime/Models/GraphViewModel.cs.meta diff --git a/TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef b/TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef new file mode 100644 index 0000000..0a9ed19 --- /dev/null +++ b/TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef @@ -0,0 +1,3 @@ +{ + "name": "Taoria.TNodeCore.Runtime" +} diff --git a/TNodeCore/TNodeCore.asmdef.meta b/TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef.meta similarity index 100% rename from TNodeCore/TNodeCore.asmdef.meta rename to TNodeCore/Runtime/Taoria.TNodeCore.Runtime.asmdef.meta diff --git a/TNodeCore/TNodeCore.asmdef b/TNodeCore/TNodeCore.asmdef deleted file mode 100644 index bdd5334..0000000 --- a/TNodeCore/TNodeCore.asmdef +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "TNodeCore" -} diff --git a/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs b/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs index 09ea5b9..028ebe0 100644 --- a/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs +++ b/TNodeGraphViewImpl/Editor/Cache/NodeEditorExtensions.cs @@ -2,8 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; -using TNode.TNodeCore.Editor.Blackboard; -using TNode.TNodeCore.Editor.EditorPersistence; +using TNodeCore.Editor.Blackboard; +using TNodeCore.Editor.EditorPersistence; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Models; diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs b/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs index 9ef2240..024162b 100644 --- a/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs +++ b/TNodeGraphViewImpl/Editor/GraphBlackboard/DefaultGraphBlackboardView.cs @@ -2,8 +2,8 @@ using System.Collections; using System.Linq; using System.Reflection; -using TNode.TNodeCore.Editor.Serialization; using TNodeCore.Editor.NodeGraphView; +using TNodeCore.Editor.Serialization; using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Models; using TNodeGraphViewImpl.Editor.Search; diff --git a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs b/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs index 7fa95fe..aacd673 100644 --- a/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs +++ b/TNodeGraphViewImpl/Editor/GraphBlackboard/GraphBlackboardView.cs @@ -1,4 +1,4 @@ -using TNode.TNodeCore.Editor.Blackboard; +using TNodeCore.Editor.Blackboard; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Runtime.Models; using UnityEditor; diff --git a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs b/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs index 1fe2433..026b707 100644 --- a/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs +++ b/TNodeGraphViewImpl/Editor/Inspector/NodeInspectorInNode.cs @@ -1,6 +1,6 @@ using System.Reflection; -using TNode.TNodeCore.Editor.Serialization; using TNodeCore.Editor.NodeGraphView; +using TNodeCore.Editor.Serialization; using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Models; using UnityEditor; diff --git a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs b/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs index c54bf74..ba06ad6 100644 --- a/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs +++ b/TNodeGraphViewImpl/Editor/NodeGraphView/DataGraphView.cs @@ -4,11 +4,12 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; -using TNode.TNodeCore.Editor.Blackboard; -using TNode.TNodeCore.Editor.CommentView; -using TNode.TNodeCore.Editor.EditorPersistence; using TNode.TNodeCore.Editor.Models; using TNodeCore.Editor; +using TNodeCore.Editor.Blackboard; +using TNodeCore.Editor.CommentView; +using TNodeCore.Editor.EditorPersistence; +using TNodeCore.Editor.Models; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Editor.Tools.NodeCreator; using TNodeCore.Runtime.Components; diff --git a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs b/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs index 2781420..272c75f 100644 --- a/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs +++ b/TNodeGraphViewImpl/Editor/NodeViews/DragNodeView.cs @@ -1,4 +1,4 @@ -using TNode.TNodeCore.Editor.Serialization; +using TNodeCore.Editor.Serialization; using TNodeCore.Extensions; using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Models; diff --git a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs b/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs index 3e4780f..59fc964 100644 --- a/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs +++ b/TNodeGraphViewImpl/Editor/NodeViews/NodeView.cs @@ -1,12 +1,15 @@ using System; +using System.Collections; +using System.Collections.Generic; using System.Linq; using System.Reflection; -using TNode.TNodeCore.Editor.Serialization; using TNodeCore.Editor.NodeGraphView; +using TNodeCore.Editor.Serialization; using TNodeCore.Runtime; using TNodeCore.Runtime.Attributes; using TNodeCore.Runtime.Attributes.Ports; using TNodeCore.Runtime.Models; +using TNodeCore.Runtime.RuntimeCache; using TNodeGraphViewImpl.Editor.Inspector; using TNodeGraphViewImpl.Editor.Ports; using UnityEditor; @@ -145,21 +148,61 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ throw new Exception("Member is not a property or field"); } protected virtual Type BuildPortType(PortAttribute portAttribute,PropertyInfo propertyInfo){ - switch (portAttribute.TypeHandling){ - case TypeHandling.Declared : - return propertyInfo.PropertyType; - case TypeHandling.Implemented: - return propertyInfo.GetValue(_data)?.GetType(); - case TypeHandling.Specified: - return portAttribute.HandledType??typeof(object); - case TypeHandling.Path: - var type = GetDataType(portAttribute.TypePath); - Debug.Log(type); - return type; - default: - throw new ArgumentOutOfRangeException(); + + + switch (portAttribute.TypeHandling){ + case TypeHandling.Declared : + return propertyInfo.PropertyType; + case TypeHandling.Implemented: + return propertyInfo.GetValue(_data)?.GetType(); + case TypeHandling.Specified: + return portAttribute.HandledType??typeof(object); + case TypeHandling.Path: + var type = GetDataType(portAttribute.TypePath); + + return type; + default: + throw new ArgumentOutOfRangeException(); + } + + } + public virtual Type BuildGroupPortType(PortAttribute portAttribute,PropertyInfo propertyInfo,int index){ + var iList = propertyInfo.GetValue(_data) as IList; + if (iList is Array array){ + switch (portAttribute.TypeHandling){ + case TypeHandling.Declared: + return array.GetType().GetElementType(); + case TypeHandling.Implemented: + return array.GetValue(index).GetType(); + case TypeHandling.Specified: + return portAttribute.HandledType??typeof(object); + case TypeHandling.Path: + return GetDataType(portAttribute.TypePath); + default: + throw new ArgumentOutOfRangeException(); + } } + + if (iList != null && iList.GetType().IsGenericType){ + var genericType = iList.GetType().GetGenericArguments()[0]; + switch (portAttribute.TypeHandling){ + case TypeHandling.Declared: + return genericType; + case TypeHandling.Implemented: + return iList[index].GetType(); + case TypeHandling.Specified: + return portAttribute.HandledType??typeof(object); + case TypeHandling.Path: + return GetDataType(portAttribute.TypePath); + default: + throw new ArgumentOutOfRangeException(); + } + } + + return null; + } + /// /// of course you can override this method to build your own port builder /// @@ -168,18 +211,37 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ foreach (var propertyInfo in propertyInfos){ if (propertyInfo.GetCustomAttributes(typeof(OutputAttribute),true).FirstOrDefault() is OutputAttribute attribute){ - Port port = new CustomPort(Orientation.Horizontal, Direction.Output, - attribute.Multiple ? Port.Capacity.Multi : Port.Capacity.Single, - BuildPortType(attribute, propertyInfo)); - BuildPort(port, attribute, propertyInfo,outputContainer); + if (attribute.Group == false){ + Port port = new CustomPort(Orientation.Horizontal, Direction.Output, + attribute.Multiple ? Port.Capacity.Multi : Port.Capacity.Single, + BuildPortType(attribute, propertyInfo)); + BuildPort(port, attribute, propertyInfo,outputContainer); + } + else{ + var propertyValue = _data.GetValue(propertyInfo.Name); + if (propertyValue is IList list){ + for (var i = 0; i < list.Count; i++){ + var port = new CustomPort(Orientation.Horizontal, Direction.Output, + Port.Capacity.Single, + BuildGroupPortType(attribute, propertyInfo,i)); + BuildPort(port, attribute, propertyInfo,outputContainer); + } + } + } + } } foreach (var propertyInfo in propertyInfos){ if(propertyInfo.GetCustomAttributes(typeof(InputAttribute),true).FirstOrDefault() is InputAttribute attribute){ - Port port = new CustomPort + if (attribute.Group == false){ + Port port = new CustomPort (Orientation.Horizontal, Direction.Input,attribute.Multiple?Port.Capacity.Multi: Port.Capacity.Single,BuildPortType(attribute,propertyInfo)); - BuildPort(port,attribute,propertyInfo,inputContainer); + BuildPort(port,attribute,propertyInfo,inputContainer); + } + else{ + + } } } } @@ -196,6 +258,37 @@ namespace TNodeGraphViewImpl.Editor.NodeViews{ } } + private void BuildGroupPort(Port port, PortAttribute attribute, PropertyInfo propertyInfo, + VisualElement portContainer,object currentElement,int index = 0){ + portContainer.Add(port); + if (currentElement is string str){ + if (attribute.NameHandling == PortNameHandling.Auto){ + port.portName = str; + } + else{ + port.portName = ObjectNames.NicifyVariableName(BuildGroupPortName(attribute, propertyInfo, index)); + } + } + + } + + private string BuildGroupPortName(PortAttribute attribute, PropertyInfo propertyInfo, int index){ + switch (attribute.NameHandling){ + case PortNameHandling.Auto: + return (attribute.Name.Trim(' ').Length>0?attribute.Name:propertyInfo.Name)+":"+index; + case PortNameHandling.Manual: + return attribute.Name+":"+index;; + case PortNameHandling.MemberName: + return propertyInfo.Name+":"+index; + case PortNameHandling.Format: + throw new NotImplementedException(); + case PortNameHandling.MemberType: + return propertyInfo.PropertyType.Name+":"+index; + default: + throw new ArgumentOutOfRangeException(); + } + } + public void StartARenameTitleTextField(){ var textField = new TextField{ value = title, diff --git a/TNodeGraphViewImpl/Editor/Placemats/PlacematView.cs b/TNodeGraphViewImpl/Editor/Placemats/PlacematView.cs index 0230fe2..a61ac6e 100644 --- a/TNodeGraphViewImpl/Editor/Placemats/PlacematView.cs +++ b/TNodeGraphViewImpl/Editor/Placemats/PlacematView.cs @@ -1,4 +1,5 @@ using TNode.TNodeCore.Editor.Models; +using TNodeCore.Editor.Models; using UnityEditor.Experimental.GraphView; using UnityEngine; using UnityEngine.UIElements; diff --git a/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs b/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs index 5b6e372..f461a48 100644 --- a/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs +++ b/TNodeGraphViewImpl/Editor/Search/BlackboardSearchWindowProvider.cs @@ -1,7 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; -using TNode.TNodeCore.Editor.Blackboard; +using TNodeCore.Editor.Blackboard; using TNodeCore.Editor.NodeGraphView; using UnityEditor; using UnityEditor.Experimental.GraphView; diff --git a/TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef b/TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef index c6a26bd..1963932 100644 --- a/TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef +++ b/TNodeGraphViewImpl/TNodeGraphViewImpl.asmdef @@ -2,7 +2,8 @@ "name": "TNodeGraphViewImpl", "rootNamespace": "", "references": [ - "GUID:940af72691767fa47be979e5dbcf6ba0" + "GUID:940af72691767fa47be979e5dbcf6ba0", + "GUID:646fd469059c44c3b9215226d5e1e13c" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Tests.meta b/Tests.meta new file mode 100644 index 0000000..f2729e1 --- /dev/null +++ b/Tests.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 693e3b5ee51240dfa38db52ca14eecde +timeCreated: 1660803399 \ No newline at end of file diff --git a/TilemapGenerator.meta b/TilemapGenerator.meta deleted file mode 100644 index fb32c7a..0000000 --- a/TilemapGenerator.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cf0168c8ec1f9304c9872577b1e6abdf -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: