// Called by GraphDataStore.Subscribe after the model has been changed protected override void ModelChanged(GraphData graphData, IGraphDataAction changeAction) { switch (changeAction) { case ChangeExposedFlagAction changeExposedFlagAction: ViewModel.isInputExposed = Model.generatePropertyBlock; DirtyNodes(ModificationScope.Graph); m_SgBlackboardField.UpdateFromViewModel(); break; case ChangePropertyValueAction changePropertyValueAction: DirtyNodes(ModificationScope.Graph); m_SgBlackboardField.MarkDirtyRepaint(); break; case ResetReferenceNameAction resetReferenceNameAction: DirtyNodes(ModificationScope.Graph); break; case ChangeReferenceNameAction changeReferenceNameAction: DirtyNodes(ModificationScope.Graph); break; case ChangeDisplayNameAction changeDisplayNameAction: ViewModel.inputName = Model.displayName; DirtyNodes(ModificationScope.Topological); m_SgBlackboardField.UpdateFromViewModel(); break; } }
// Called by GraphDataStore.Subscribe after the model has been changed protected override void ModelChanged(GraphData graphData, IGraphDataAction changeAction) { switch (changeAction) { case ChangeExposedFlagAction changeExposedFlagAction: // ModelChanged is called overzealously on everything // but we only care if the action pertains to our Model if (changeExposedFlagAction.shaderInputReference == Model) { ViewModel.isInputExposed = Model.generatePropertyBlock; if (changeExposedFlagAction.oldIsExposedValue != changeExposedFlagAction.newIsExposedValue) { DirtyNodes(ModificationScope.Graph); } m_SgBlackboardField.UpdateFromViewModel(); } break; case ChangePropertyValueAction changePropertyValueAction: if (changePropertyValueAction.shaderInputReference == Model) { DirtyNodes(ModificationScope.Graph); m_SgBlackboardField.MarkDirtyRepaint(); } break; case ResetReferenceNameAction resetReferenceNameAction: if (resetReferenceNameAction.shaderInputReference == Model) { DirtyNodes(ModificationScope.Graph); } break; case ChangeReferenceNameAction changeReferenceNameAction: if (changeReferenceNameAction.shaderInputReference == Model) { DirtyNodes(ModificationScope.Graph); } break; case ChangeDisplayNameAction changeDisplayNameAction: if (changeDisplayNameAction.shaderInputReference == Model) { ViewModel.inputName = Model.displayName; DirtyNodes(ModificationScope.Topological); m_SgBlackboardField.UpdateFromViewModel(); } break; } }