private void ReadyTag(GameObjectTag Tag) { if (TagsReady) { if (Tags.Contains(Tag)) { if (ParentScene != null && ParentScene.Tags.Contains(Tag)) { LinkedList <GameObject> l = ParentScene.GetList(Tag); if (l != null && !l.Contains(this)) { l.AddFirst(this); if (Tag == GameObjectTag.WorldViewer) { ParentScene.UpdateViews(); } } } } else { if (ParentScene != null && ParentScene.Tags.Contains(Tag)) { LinkedList <GameObject> l = ParentScene.GetList(Tag); if (l != null && l.Contains(this)) { l.Remove(this); if (Tag == GameObjectTag.WorldViewer) { ParentScene.UpdateViews(); } } } } } else { ParentScene.NeedsToReadyTags = true; if (!ParentScene.ObjectsToReadyTags.Contains(this)) { ParentScene.ObjectsToReadyTags.AddLast(this); } } }