OpenSim.Region.Framework.Scenes.Scene.CleanDroppedAttachments C# (CSharp) Method

CleanDroppedAttachments() public method

public CleanDroppedAttachments ( ) : void
return void
        public void CleanDroppedAttachments()
        {
            List<SceneObjectGroup> objectsToDelete =
                    new List<SceneObjectGroup>();

            lock (m_cleaningAttachments)
            {
                ForEachSOG(delegate (SceneObjectGroup grp)
                        {
                            if (grp.RootPart.Shape.PCode == 0 && grp.RootPart.Shape.State != 0 && (!objectsToDelete.Contains(grp)))
                            {
                                UUID agentID = grp.OwnerID;
                                if (agentID == UUID.Zero)
                                {
                                    objectsToDelete.Add(grp);
                                    return;
                                }

                                ScenePresence sp = GetScenePresence(agentID);
                                if (sp == null)
                                {
                                    objectsToDelete.Add(grp);
                                    return;
                                }
                            }
                        });
            }

            foreach (SceneObjectGroup grp in objectsToDelete)
            {
                m_log.InfoFormat("[SCENE]: Deleting dropped attachment {0} of user {1}", grp.UUID, grp.OwnerID);
                DeleteSceneObject(grp, true);
            }
        }
    }
Scene