From 8c58504885bee9a3174d2eda38b2b243e95082a6 Mon Sep 17 00:00:00 2001
From: taoria <445625470@qq.com>
Date: Mon, 4 Jul 2022 22:01:24 +0800
Subject: [PATCH] 1.hi!
---
TNode/Attribute/BlackboardSection.cs | 16 ++++++++++++++++
TNode/Attribute/BlackboardSection.cs.meta | 3 +++
TNode/Editor/BaseViews/DataGraphView.cs | 13 +++++++++++--
TNode/Editor/GraphBlackboard.meta | 3 +++
TNode/Editor/GraphBlackboard/GraphBlackboard.cs | 10 ++++++++++
.../GraphBlackboard/GraphBlackboard.cs.meta | 3 +++
TNode/Editor/Search.meta | 3 +++
.../Search/BlackboardSearchWindowProvider.cs | 5 +++++
.../BlackboardSearchWindowProvider.cs.meta | 3 +++
.../NodeSearchWindowProvider.cs} | 4 ++--
.../NodeSearchWindowProvider.cs.meta} | 0
11 files changed, 59 insertions(+), 4 deletions(-)
create mode 100644 TNode/Attribute/BlackboardSection.cs
create mode 100644 TNode/Attribute/BlackboardSection.cs.meta
create mode 100644 TNode/Editor/GraphBlackboard.meta
create mode 100644 TNode/Editor/GraphBlackboard/GraphBlackboard.cs
create mode 100644 TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta
create mode 100644 TNode/Editor/Search.meta
create mode 100644 TNode/Editor/Search/BlackboardSearchWindowProvider.cs
create mode 100644 TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta
rename TNode/Editor/{SearchWindowProvider.cs => Search/NodeSearchWindowProvider.cs} (94%)
rename TNode/Editor/{SearchWindowProvider.cs.meta => Search/NodeSearchWindowProvider.cs.meta} (100%)
diff --git a/TNode/Attribute/BlackboardSection.cs b/TNode/Attribute/BlackboardSection.cs
new file mode 100644
index 0000000..bbefd7a
--- /dev/null
+++ b/TNode/Attribute/BlackboardSection.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using JetBrains.Annotations;
+
+namespace TNode.Attribute{
+
+ ///
+ /// Use this attribute to declare a blackboard section ,a blackboard section is a group of variables with same types
+ ///
+ [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
+ [BaseTypeRequired(typeof(List<>))]
+
+ public class BlackboardSection:System.Attribute{
+
+ }
+}
\ No newline at end of file
diff --git a/TNode/Attribute/BlackboardSection.cs.meta b/TNode/Attribute/BlackboardSection.cs.meta
new file mode 100644
index 0000000..1794987
--- /dev/null
+++ b/TNode/Attribute/BlackboardSection.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 773d073006dc4dd488e18b38165efd5a
+timeCreated: 1656942977
\ No newline at end of file
diff --git a/TNode/Editor/BaseViews/DataGraphView.cs b/TNode/Editor/BaseViews/DataGraphView.cs
index 31c596b..fc11fe7 100644
--- a/TNode/Editor/BaseViews/DataGraphView.cs
+++ b/TNode/Editor/BaseViews/DataGraphView.cs
@@ -111,7 +111,7 @@ namespace TNode.Editor.BaseViews{
private T _data;
private bool _isInspectorOn;
- private SearchWindowProvider _searchWindowProvider;
+ private NodeSearchWindowProvider _nodeSearchWindowProvider;
private NodeInspector _nodeInspector;
public GraphEditor Owner;
private Dictionary _nodeDict = new();
@@ -158,7 +158,7 @@ namespace TNode.Editor.BaseViews{
evt.menu.AppendAction("Create Node", dma => {
var dmaPos = dma.eventInfo.mousePosition+editorPosition;
SearchWindowContext searchWindowContext = new SearchWindowContext(dmaPos,200,200);
- var searchWindow = ScriptableObject.CreateInstance();
+ var searchWindow = ScriptableObject.CreateInstance();
searchWindow.Setup(typeof(T),this,Owner);
SearchWindow.Open(searchWindowContext, searchWindow);
});
@@ -234,6 +234,15 @@ namespace TNode.Editor.BaseViews{
public void CreateBlackBoard(){
var blackboard = new Blackboard();
+ //Blackboard add "Add Node" button
+ blackboard.Add(new BlackboardSection(){
+ title = "Hello World",
+ });
+ blackboard.addItemRequested = (item) => {
+ //Create a sub window for the blackboard to show the selection
+ var subWindow = ScriptableObject.CreateInstance();
+ };
+
//Set black board to left side of the view
blackboard.SetPosition(new Rect(0,0,200,600));
this.Add(blackboard);
diff --git a/TNode/Editor/GraphBlackboard.meta b/TNode/Editor/GraphBlackboard.meta
new file mode 100644
index 0000000..5c57522
--- /dev/null
+++ b/TNode/Editor/GraphBlackboard.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 476d14ab24734294b206f16006438e60
+timeCreated: 1656941713
\ No newline at end of file
diff --git a/TNode/Editor/GraphBlackboard/GraphBlackboard.cs b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs
new file mode 100644
index 0000000..2ade88a
--- /dev/null
+++ b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs
@@ -0,0 +1,10 @@
+using UnityEditor.Experimental.GraphView;
+
+namespace TNode.Editor.GraphBlackboard{
+ ///
+ /// Implement this class to create graph black board for specified graph
+ ///
+ public class GraphBlackboard:Blackboard{
+
+ }
+}
\ No newline at end of file
diff --git a/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta
new file mode 100644
index 0000000..3b9d3e8
--- /dev/null
+++ b/TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 285d836db7e04e2f989069277fd1853a
+timeCreated: 1656941728
\ No newline at end of file
diff --git a/TNode/Editor/Search.meta b/TNode/Editor/Search.meta
new file mode 100644
index 0000000..c1c4f31
--- /dev/null
+++ b/TNode/Editor/Search.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 4fe6a069e0cc45158b4749dbdb7fd399
+timeCreated: 1656942698
\ No newline at end of file
diff --git a/TNode/Editor/Search/BlackboardSearchWindowProvider.cs b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs
new file mode 100644
index 0000000..53dfcbb
--- /dev/null
+++ b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs
@@ -0,0 +1,5 @@
+namespace TNode.Editor{
+ public class BlackboardSearchWindowProvider{
+
+ }
+}
\ No newline at end of file
diff --git a/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta
new file mode 100644
index 0000000..56fdf8c
--- /dev/null
+++ b/TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 73c77be1f9364a0199d95eea7e7c0101
+timeCreated: 1656942712
\ No newline at end of file
diff --git a/TNode/Editor/SearchWindowProvider.cs b/TNode/Editor/Search/NodeSearchWindowProvider.cs
similarity index 94%
rename from TNode/Editor/SearchWindowProvider.cs
rename to TNode/Editor/Search/NodeSearchWindowProvider.cs
index e719cbe..58a3c1d 100644
--- a/TNode/Editor/SearchWindowProvider.cs
+++ b/TNode/Editor/Search/NodeSearchWindowProvider.cs
@@ -12,7 +12,7 @@ using UnityEngine;
using UnityEngine.UIElements;
namespace TNode.Editor{
- public class SearchWindowProvider:ScriptableObject,ISearchWindowProvider{
+ public class NodeSearchWindowProvider:ScriptableObject,ISearchWindowProvider{
private Type _graphType;
private GraphView _graphView;
private EditorWindow _editor;
@@ -58,7 +58,7 @@ namespace TNode.Editor{
return false;
}
- public SearchWindowProvider(){
+ public NodeSearchWindowProvider(){
}
}
}
\ No newline at end of file
diff --git a/TNode/Editor/SearchWindowProvider.cs.meta b/TNode/Editor/Search/NodeSearchWindowProvider.cs.meta
similarity index 100%
rename from TNode/Editor/SearchWindowProvider.cs.meta
rename to TNode/Editor/Search/NodeSearchWindowProvider.cs.meta