public void SaveAndDeleteAttachment(IClientAPI remoteClient, SceneObjectGroup grp, UUID assetID, UUID agentID) { if (grp != null) { m_log.DebugFormat("[DETACH]: Saving attachpoint {0}: [{1}] {2}", grp.GetCurrentAttachmentPoint(), grp.UUID, grp.Name); if (!grp.HasGroupChanged && grp.GroupScriptEvents == 0) { m_log.InfoFormat("[ATTACHMENT]: Save request for {0} which is unchanged", grp.UUID); DeleteAttachment(grp); return; } if (grp.IsTempAttachment) { m_log.InfoFormat("[ATTACHMENT]: Ignored save request for {0} which is temporary", grp.UUID); DeleteAttachment(grp); return; } grp.DetachToInventoryPrep(); KnownAssetUpdateRequest updateReq = new KnownAssetUpdateRequest { remoteClient = remoteClient, attachment = grp, assetID = assetID, agentID = agentID, forDeletion = true }; lock (_pendingAssetUpdates) { _pendingAssetUpdates[grp.UUID] = updateReq; } } }
public void DeleteAttachment(SceneObjectGroup grp) { if (grp != null) { grp.DetachToInventoryPrep(); DeleteSceneObject(grp, false); return; } }