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); }
public NodeTaskProvider(TaskNodeData data) { CurrentType = data?.TaskImplementation?.GetType(); _currentTaskIndex = TaskFactory.GetIndex(CurrentType); var manipulator = new ContextualMenuManipulator(CreateMenu); manipulator.activators.Add(new ManipulatorActivationFilter() { button = MouseButton.LeftMouse, clickCount = 1 }); _label = new Label(); _label.text = ObjectNames.NicifyVariableName(TaskFactory.NamesEditor[_currentTaskIndex]); _label.style.fontSize = 13; _label.AddToClassList("node-task-button"); _label.AddManipulator(manipulator); Add(_label); }
public void Dispose() { if (_field != null) { _field.OnChanged -= FieldChanged; } if (_property != null) { _property.Dispose(); } if (_serializedObject != null) { _serializedObject.ApplyModifiedPropertiesWithoutUndo(); _serializedObject.Dispose(); } _serializedObject = null; _property = null; _data = null; }
public TaskNode(TaskNodeData data) : base(data) { TaskData = data; _isEntry = TaskData.TaskImplementation is EntryTask; if (!IsEntry) { _taskProvider = new NodeTaskProvider(TaskData); _taskProvider.OnTaskChanged += TaskChanged; var titleElement = titleContainer.Children().First(); titleContainer.Remove(titleElement); titleContainer.Insert(0, _taskProvider); titleContainer.AddToClassList("node-title-container"); titleContainer.style.height = 25; _taskContainer = new TaskContainer(); UpdateTaskContainer(); extensionContainer.Add(_taskContainer); } UpdateAllPorts(); UpdateTaskDependencies(); OnAnyDeleted += UpdateTaskContainer; }
public void SetData(TaskNodeData data) { _data = data; UpdateField(); }
private void ContextCreateTaskAndNode(DropdownMenuAction args) { var data = new TaskNodeData(GetAvailableNodeIndex(), null, null); ContextCreateNode(data); }