public void HandleGraphChanges() { foreach (var propertyGuid in m_Graph.removedProperties) { BlackboardRow row; if (m_PropertyRows.TryGetValue(propertyGuid, out row)) { row.RemoveFromHierarchy(); m_PropertyRows.Remove(propertyGuid); } } foreach (var property in m_Graph.addedProperties) { AddProperty(property, index: m_Graph.GetShaderPropertyIndex(property)); } if (m_Graph.movedProperties.Any()) { foreach (var row in m_PropertyRows.Values) { row.RemoveFromHierarchy(); } foreach (var property in m_Graph.properties) { m_Section.Add(m_PropertyRows[property.guid]); } } }
public void HandleGraphChanges(bool wasUndoRedoPerformed) { var selection = new List <ISelectable>(); if (blackboard.selection != null) { selection.AddRange(blackboard.selection); } foreach (var inputGuid in m_Graph.removedInputs) { BlackboardRow row; if (m_InputRows.TryGetValue(inputGuid, out row)) { row.RemoveFromHierarchy(); m_InputRows.Remove(inputGuid); } } // This tries to maintain the selection the user had before the undo/redo was performed, // if the user hasn't added or removed any inputs if (wasUndoRedoPerformed) { oldSelectionPersistenceData.Clear(); foreach (var item in selection) { if (item is BlackboardFieldView blackboardFieldView) { var guid = blackboardFieldView.shaderInput.referenceName; oldSelectionPersistenceData.Add(guid, blackboardFieldView.viewDataKey); } } } foreach (var input in m_Graph.addedInputs) { AddInputRow(input, index: m_Graph.GetGraphInputIndex(input)); } if (m_Graph.movedInputs.Any()) { foreach (var row in m_InputRows.Values) { row.RemoveFromHierarchy(); } foreach (var property in m_Graph.properties) { m_PropertySection.Add(m_InputRows[property]); } foreach (var keyword in m_Graph.keywords) { m_KeywordSection.Add(m_InputRows[keyword]); } } }
public void HandleGraphChanges() { foreach (var inputGuid in m_Graph.removedInputs) { BlackboardRow row; if (m_InputRows.TryGetValue(inputGuid, out row)) { row.RemoveFromHierarchy(); m_InputRows.Remove(inputGuid); } } foreach (var input in m_Graph.addedInputs) { AddInputRow(input, index: m_Graph.GetGraphInputIndex(input)); } foreach (var expandedInput in expandedInputs) { SessionState.SetBool(expandedInput.Key.guid.ToString(), expandedInput.Value); } if (m_Graph.movedInputs.Any()) { foreach (var row in m_InputRows.Values) { row.RemoveFromHierarchy(); } foreach (var property in m_Graph.properties) { m_PropertySection.Add(m_InputRows[property.guid]); } foreach (var keyword in m_Graph.keywords) { m_KeywordSection.Add(m_InputRows[keyword.guid]); } } m_ExpandedInputs.Clear(); }
public void HandleGraphChanges() { foreach (var propertyGuid in m_Graph.removedProperties) { BlackboardRow row; if (m_PropertyRows.TryGetValue(propertyGuid, out row)) { row.RemoveFromHierarchy(); m_PropertyRows.Remove(propertyGuid); } } foreach (var property in m_Graph.addedProperties) { AddProperty(property, index: m_Graph.GetShaderPropertyIndex(property)); } foreach (var propertyDict in expandedProperties) { SessionState.SetBool(propertyDict.Key.guid.ToString(), propertyDict.Value); } if (m_Graph.movedProperties.Any()) { foreach (var row in m_PropertyRows.Values) { row.RemoveFromHierarchy(); } foreach (var property in m_Graph.properties) { m_Section.Add(m_PropertyRows[property.guid]); } } m_ExpandedProperties.Clear(); }