/// <summary> /// Unregisters a child <see cref="EngineElement"/> (opposite of <see cref="RegisterChild"/>). /// </summary> /// <param name="element">The <see cref="EngineElement"/> to unregister. Silently ignores <c>null</c>.</param> protected void UnregisterChild(EngineElement element) { if (element == null) { return; } _toSetEngine.Remove(element); _toDispose.Remove(element); }
/// <summary> /// Registers a child <see cref="EngineElement"/> for automatic <see cref="Engine"/> setting and <see cref="Dispose"/> calling. /// </summary> /// <param name="element">The <see cref="EngineElement"/> to register. Silently ignores <c>null</c>.</param> /// <param name="autoDispose">Controls whether the <paramref name="element"/> is automatically disposed when <see cref="Dispose"/> is called.</param> protected void RegisterChild(EngineElement element, bool autoDispose = true) { if (element == null) { return; } if (autoDispose) { _toDispose.Add(element); } if (IsEngineSet) { element.Engine = Engine; } _toSetEngine.Add(element); }