Пример #1
0
        public void Dispose()
        {
            if (Disposed)
            {
                return;
            }

            Layer?.Remove(this, false);
            Disposed = true;

            // Remove this from parents
            if (ParentObjects != null)
            {
                foreach (var relevantObject in ParentObjects)
                {
                    relevantObject.ChildObjects.Remove(this);
                }
            }

            // Return if there are no children
            if (ChildObjects == null)
            {
                return;
            }

            // Kill all children
            var objectsToDispose = ChildObjects.ToArray();

            foreach (var t in objectsToDispose)
            {
                t.Dispose();
            }
        }
Пример #2
0
        private void CycleQueue()
        {
            foreach (var screenObject in ChildObjects.ToArray())
            {
                screenObject.AutoMove();
                RemoveObjectIfOffscreen(screenObject);
            }

            AddOffscreenObjectToOnscreen();
        }