From 0f15ccb2cf994c64fb8c7f71a64721a3e5fe3085 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 28 Jul 2010 19:23:30 +0100 Subject: relocate moap specific cloning code to MoapModule --- .../CoreModules/World/Media/Moap/MoapModule.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'OpenSim/Region/CoreModules/World/Media') diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs index 6d74b8e..f4814ce 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.cs @@ -122,6 +122,7 @@ namespace OpenSim.Region.CoreModules.Media.Moap m_scene.EventManager.OnDeregisterCaps += OnDeregisterCaps; m_scene.EventManager.OnSceneObjectLoaded += OnSceneObjectLoaded; m_scene.EventManager.OnSceneObjectPreSave += OnSceneObjectPreSave; + m_scene.EventManager.OnSceneObjectPartCopy += OnSceneObjectPartCopy; } public void Close() @@ -133,6 +134,7 @@ namespace OpenSim.Region.CoreModules.Media.Moap m_scene.EventManager.OnDeregisterCaps -= OnDeregisterCaps; m_scene.EventManager.OnSceneObjectLoaded -= OnSceneObjectLoaded; m_scene.EventManager.OnSceneObjectPreSave -= OnSceneObjectPreSave; + m_scene.EventManager.OnSceneObjectPartCopy -= OnSceneObjectPartCopy; } public void OnRegisterCaps(UUID agentID, Caps caps) @@ -264,6 +266,24 @@ namespace OpenSim.Region.CoreModules.Media.Moap } } + protected void OnSceneObjectPartCopy(SceneObjectPart copy, SceneObjectPart original) + { + if (original.Shape.Media != null) + { + List dupeMedia = new List(); + + foreach (MediaEntry me in original.Shape.Media) + { + if (me != null) + dupeMedia.Add(MediaEntry.FromOSD(me.GetOSD())); + else + dupeMedia.Add(null); + } + + copy.Shape.Media = dupeMedia; + } + } + public MediaEntry GetMediaEntry(SceneObjectPart part, int face) { MediaEntry me = null; -- cgit v1.1