taoria 3 years ago
parent 5291ee074a
commit 8c58504885
  1. 16
      TNode/Attribute/BlackboardSection.cs
  2. 3
      TNode/Attribute/BlackboardSection.cs.meta
  3. 13
      TNode/Editor/BaseViews/DataGraphView.cs
  4. 3
      TNode/Editor/GraphBlackboard.meta
  5. 10
      TNode/Editor/GraphBlackboard/GraphBlackboard.cs
  6. 3
      TNode/Editor/GraphBlackboard/GraphBlackboard.cs.meta
  7. 3
      TNode/Editor/Search.meta
  8. 5
      TNode/Editor/Search/BlackboardSearchWindowProvider.cs
  9. 3
      TNode/Editor/Search/BlackboardSearchWindowProvider.cs.meta
  10. 4
      TNode/Editor/Search/NodeSearchWindowProvider.cs
  11. 0
      TNode/Editor/Search/NodeSearchWindowProvider.cs.meta

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using JetBrains.Annotations;
namespace TNode.Attribute{
/// <summary>
/// Use this attribute to declare a blackboard section ,a blackboard section is a group of variables with same types
/// </summary>
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
[BaseTypeRequired(typeof(List<>))]
public class BlackboardSection:System.Attribute{
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 773d073006dc4dd488e18b38165efd5a
timeCreated: 1656942977

@ -111,7 +111,7 @@ namespace TNode.Editor.BaseViews{
private T _data; private T _data;
private bool _isInspectorOn; private bool _isInspectorOn;
private SearchWindowProvider _searchWindowProvider; private NodeSearchWindowProvider _nodeSearchWindowProvider;
private NodeInspector _nodeInspector; private NodeInspector _nodeInspector;
public GraphEditor<T> Owner; public GraphEditor<T> Owner;
private Dictionary<string,Node> _nodeDict = new(); private Dictionary<string,Node> _nodeDict = new();
@ -158,7 +158,7 @@ namespace TNode.Editor.BaseViews{
evt.menu.AppendAction("Create Node", dma => { evt.menu.AppendAction("Create Node", dma => {
var dmaPos = dma.eventInfo.mousePosition+editorPosition; var dmaPos = dma.eventInfo.mousePosition+editorPosition;
SearchWindowContext searchWindowContext = new SearchWindowContext(dmaPos,200,200); SearchWindowContext searchWindowContext = new SearchWindowContext(dmaPos,200,200);
var searchWindow = ScriptableObject.CreateInstance<SearchWindowProvider>(); var searchWindow = ScriptableObject.CreateInstance<NodeSearchWindowProvider>();
searchWindow.Setup(typeof(T),this,Owner); searchWindow.Setup(typeof(T),this,Owner);
SearchWindow.Open(searchWindowContext, searchWindow); SearchWindow.Open(searchWindowContext, searchWindow);
}); });
@ -234,6 +234,15 @@ namespace TNode.Editor.BaseViews{
public void CreateBlackBoard(){ public void CreateBlackBoard(){
var blackboard = new Blackboard(); 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<NodeSearchWindowProvider>();
};
//Set black board to left side of the view //Set black board to left side of the view
blackboard.SetPosition(new Rect(0,0,200,600)); blackboard.SetPosition(new Rect(0,0,200,600));
this.Add(blackboard); this.Add(blackboard);

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 476d14ab24734294b206f16006438e60
timeCreated: 1656941713

@ -0,0 +1,10 @@
using UnityEditor.Experimental.GraphView;
namespace TNode.Editor.GraphBlackboard{
/// <summary>
/// Implement this class to create graph black board for specified graph
/// </summary>
public class GraphBlackboard:Blackboard{
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 285d836db7e04e2f989069277fd1853a
timeCreated: 1656941728

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 4fe6a069e0cc45158b4749dbdb7fd399
timeCreated: 1656942698

@ -0,0 +1,5 @@
namespace TNode.Editor{
public class BlackboardSearchWindowProvider{
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 73c77be1f9364a0199d95eea7e7c0101
timeCreated: 1656942712

@ -12,7 +12,7 @@ using UnityEngine;
using UnityEngine.UIElements; using UnityEngine.UIElements;
namespace TNode.Editor{ namespace TNode.Editor{
public class SearchWindowProvider:ScriptableObject,ISearchWindowProvider{ public class NodeSearchWindowProvider:ScriptableObject,ISearchWindowProvider{
private Type _graphType; private Type _graphType;
private GraphView _graphView; private GraphView _graphView;
private EditorWindow _editor; private EditorWindow _editor;
@ -58,7 +58,7 @@ namespace TNode.Editor{
return false; return false;
} }
public SearchWindowProvider(){ public NodeSearchWindowProvider(){
} }
} }
} }
Loading…
Cancel
Save