private void ContextualCreateTreeValueAndNode(DropdownMenuAction args) { var impl = new TreeValueFunc(); var data = new FuncNodeData(GetAvailableNodeIndex(), impl, null); ContextCreateNode(data); }
private void ContextCreateBbValueAndNode(DropdownMenuAction args) { var variableName = (string)args.userData; var accessor = Tree.Blackboard.GetterValues[variableName]; var func = new BbValueFunc(accessor.PropertyType, variableName); var data = new FuncNodeData(GetAvailableNodeIndex(), func, null); ContextCreateNode(data); }
public TreeValueNode(FuncNodeData data) : base(data) { FuncData = data; ImportLayout(); CreateOuts(); if (FuncData.FuncImplementation is VariableFunc varFunc) { if (varFunc.VariableType != typeof(AnyValueType)) { CreatePropertyField(); } } }
private NodeData CreateData(object impl) { NodeData data; if (!IsFuncData) { data = new TaskNodeData(Index, impl as BehaviourTask, Connections); } else { data = new FuncNodeData(Index, impl as BehaviourFunc, Connections); } return(data); }
private void ValidateBbValue(FuncNodeData data) { var func = data.FuncImplementation as BbValueFunc; if (func != null && !string.IsNullOrEmpty(func.VariableName)) { bool?isValidName = BTWindow.SharedTree.Blackboard?.GetterValues.TryGetValue(func?.VariableName, out var accessor); if (isValidName.HasValue && isValidName.Value == true) { return; } } AddErrorHighlight(this); }
public BbValueNode(FuncNodeData data) : base(data) { ImportLayout(); CreateOuts(); ValidateBbValue(data); }