Esempio n. 1
0
        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]);
                }
            }
        }
Esempio n. 2
0
        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]);
                }
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }