using TNodeCore.Editor.Blackboard; using TNodeCore.Editor.NodeGraphView; using TNodeCore.Runtime.Models; using UnityEditor; using UnityEditor.Experimental.GraphView; using UnityEngine; namespace TNodeGraphViewImpl.Editor.GraphBlackboard{ /// /// Implement this class to create graph black board for specified graph /// public class GraphBlackboardView:Blackboard,IBlackboardView where T:BlackboardData{ protected IBaseDataGraphView Owner; protected EditorWindow OwnerWindow; private T _data; public void AddItem(){ } public void Setup(IBaseDataGraphView graphView,EditorWindow ownerWindow){ Owner = graphView; OwnerWindow = ownerWindow; } public void NotifyUpdate(){ UpdateBlackboard(GetBlackboardData()); } public new void SetPosition(Rect rect){ } protected virtual void UpdateBlackboard(BlackboardData data){ } public T Data{ get => (T) _data; set{ _data = value; UpdateBlackboard(value); } } public BlackboardData GetBlackboardData(){ return _data; } public void SetBlackboardData(BlackboardData data){ Data = (T) data; } } }