From 6d2e1ad6ba73fb0eba51b3885ff0a4d7d1b5d611 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 19 Aug 2008 02:12:40 +0000 Subject: Attachment persistence!!! Patch #9169 (Mantis #1171) Attachments now save to MySQL. No reattach on login yet. --- .../Region/Environment/Scenes/Scene.Inventory.cs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes/Scene.Inventory.cs') diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 0148d76..784d04c 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs @@ -2316,5 +2316,48 @@ namespace OpenSim.Region.Environment.Scenes // // imod.TestFunction(); // } + + public void RezSingleAttachment(IClientAPI remoteClient, LLUUID itemID, + uint AttachmentPt, uint ItemFlags, uint NextOwnerMask) + { + SceneObjectGroup att = m_innerScene.RezSingleAttachment(remoteClient, itemID, AttachmentPt, ItemFlags, NextOwnerMask); + + if (att == null) + { + DetachSingleAttachmentToInv(itemID, remoteClient); + return; + } + + if (att.RootPart != null) + AttachmentPt = att.RootPart.AttachmentPoint; + + ScenePresence presence; + if(TryGetAvatar(remoteClient.AgentId, out presence)) + { + presence.Appearance.SetAttachment((int)AttachmentPt, itemID, att.GetFromAssetID()); + IAvatarFactory ava = RequestModuleInterface(); + if(ava != null) + { + ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance); + } + + } + } + + public void DetachSingleAttachmentToInv(LLUUID itemID, IClientAPI remoteClient) + { + ScenePresence presence; + if(TryGetAvatar(remoteClient.AgentId, out presence)) + { + presence.Appearance.DetachAttachment(itemID); + IAvatarFactory ava = RequestModuleInterface(); + if(ava != null) + { + ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance); + } + + } + m_innerScene.DetachSingleAttachmentToInv(itemID, remoteClient); + } } } -- cgit v1.1