public static int CompareTo(this IExternalNode x, IExternalNode y) { if (x.IsAncestorOf(y)) return -1; if (y.IsAncestorOf(x)) return 1; return 0; }
protected override void ReleaseSelf() { base.ReleaseSelf(); if (node != null) { node.OnDestroy(); } node = null; }
public override void Release() { base.Release(); if (node != null) { node.OnDestroy(); } node = null; }
public static bool IsAncestorOf(this IExternalNode x, IExternalNode y) => x.Descendents().Contains(y);
public static IEnumerable<INode> LazyDescendents(IExternalNode node) => node.Subscribers.Concat(node.Subscribers.Where(n => n.React()).SelectMany(LazyDescendents)).Distinct();
public void Set(IExternalNode node) { this.node = node; }