public override void OnGUI(GUIContent label) { base.OnGUI(label); ICZType c = Value as ICZType; c.SetValue(EditorGUILayoutExtension.DrawField(label, c.ValueType, c.GetValue())); }
public bool AddData_BB(string _name, ICZType _data) { if (blackboard.SetData(_name, _data)) { onBlackboardDataAdded?.Invoke(_name, _data); return(true); } return(false); }
public bool TryGetData(string _name, out ICZType _data) { if (dataMap.TryGetValue(_name, out _data) || _data == null) { dataMap.Remove(_name); return(false); } return(true); }
public bool SetData(string _name, ICZType _data) { if (ContainsName(_name)) { return(false); } dataMap[_name] = _data; return(true); }
public static ICZType GetNew(Type _rt) { ICZType t = null; if (TypeCreator.TryGetValue(_rt, out Func <ICZType> _creator)) { t = _creator(); } return(t); }
public bool TryGetData(string _name, out ICZType _data) { _data = null; if (!guidMap.TryGetValue(_name, out string guid)) { return(false); } if (!dataMap.TryGetValue(guid, out ICZType data)) { return(false); } _data = data; return(true); }
public bool SetData(string _name, ICZType _data) { if (ContainsName(_name)) { return(false); } if (!guidMap.TryGetValue(_name, out string guid)) { guidMap[_name] = guid = Guid.NewGuid().ToString(); } dataMap[guid] = _data; return(true); }
public void AddFieldView(string _name, ICZType _data) { BlackboardField blackboardField = new BlackboardField() { text = _name, typeText = _data.ValueType.Name, userData = _data }; blackboardField.RegisterCallback <MouseEnterEvent>(evt => { GraphView.nodes.ForEach(node => { if (node is ParameterNodeView parameterNodeView && parameterNodeView.T_Model.Name == blackboardField.text) { parameterNodeView.HighlightOn(); } }); }); blackboardField.RegisterCallback <MouseLeaveEvent>(evt => { GraphView.nodes.ForEach(node => { if (node is ParameterNodeView parameterNodeView && parameterNodeView.T_Model.Name == blackboardField.text) { parameterNodeView.HighlightOff(); } }); }); BindableElement fieldDrawer = UIElementsFactory.CreateField("", _data.ValueType, _data.GetValue(), _newValue => { _data.SetValue(_newValue); if (_data.GetValue() != null) { blackboardField.typeText = _data.ValueType.Name; } }); BlackboardRow blackboardRow = new BlackboardRow(blackboardField, fieldDrawer); contentContainer.Add(blackboardRow); fields[_name] = blackboardRow; }
public bool TryGetData_BB(string _name, out ICZType _data) { return(blackboard.TryGetData(_name, out _data)); }
void OnBlackboardDataAdded(string _dataName, ICZType _data) { AddFieldView(_dataName, _data); GraphView.SetDirty(); }