public void Dispose(bool keepChildren) { Dispose(); for (int i = 0; i < children.Count; i++) { var child = children[i]; child.Dispose(keepChildren); } if (!keepChildren) { children.Clear(); if (LogicHandler != null) { LogicHandler.RemoveComponent(this); } } }