diff --git a/OpenSim/Region/Environment/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Environment/Interfaces/IRegionSerialiserModule.cs
index 29d5d475b8..b89f8692d0 100644
--- a/OpenSim/Region/Environment/Interfaces/IRegionSerialiserModule.cs
+++ b/OpenSim/Region/Environment/Interfaces/IRegionSerialiserModule.cs
@@ -102,6 +102,8 @@ namespace OpenSim.Region.Environment.Interfaces
///
///
void SavePrimListToXml2(List entityList, TextWriter stream, Vector3 min, Vector3 max);
+
+ void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName);
///
/// Deserializes a scene object from its xml2 representation. This does not load the object into the scene.
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
index c856b5b055..2e9c551b38 100644
--- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
+++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs
@@ -28,10 +28,10 @@
using System;
using System.Collections.Generic;
using System.IO;
-//using System.Reflection;
+using System.Reflection;
using System.Xml;
using OpenMetaverse;
-//using log4net;
+using log4net;
using OpenSim.Framework;
using OpenSim.Region.Physics.Manager;
@@ -42,7 +42,7 @@ namespace OpenSim.Region.Environment.Scenes
///
public class SceneXmlLoader
{
- //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, Vector3 loadOffset)
{
@@ -213,6 +213,29 @@ namespace OpenSim.Region.Environment.Scenes
SavePrimListToXml2(EntityList, stream, min, max);
}
+
+ public static void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName)
+ {
+ m_log.InfoFormat(
+ "[SERIALISER]: Saving prims with name {0} in xml2 format for region {1} to {2}",
+ primName, scene.RegionInfo.RegionName, fileName);
+
+ List entityList = scene.GetEntities();
+ List primList = new List();
+
+ foreach (EntityBase ent in entityList)
+ {
+ if (ent is SceneObjectGroup)
+ {
+ if (ent.Name == primName)
+ {
+ primList.Add(ent);
+ }
+ }
+ }
+
+ SavePrimListToXml2(primList, fileName);
+ }
public static void SavePrimListToXml2(List entityList, string fileName)
{
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs
index 8b5dd2c333..c1af947b50 100644
--- a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs
@@ -116,6 +116,11 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser
{
SceneXmlLoader.SavePrimsToXml2(scene, stream, min, max);
}
+
+ public void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName)
+ {
+ SceneXmlLoader.SaveNamedPrimsToXml2(scene, primName, fileName);
+ }
public SceneObjectGroup DeserializeGroupFromXml2(string xmlString)
{
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index eaf04eabdd..70cd45ebb3 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1880,28 +1880,6 @@ namespace OpenSim.Region.Environment.Scenes
return false;
}
- public void SaveNamedPrimsToXml2(string primName, string fileName)
- {
- m_log.InfoFormat(
- "[SCENE]: Saving prims with name {0} in xml2 format for region {1} to {2}", primName, RegionInfo.RegionName, fileName);
-
- List entityList = GetEntities();
- List primList = new List();
-
- foreach (EntityBase ent in entityList)
- {
- if (ent is SceneObjectGroup)
- {
- if (ent.Name == primName)
- {
- primList.Add(ent);
- }
- }
- }
-
- m_serialiser.SavePrimListToXml2(primList, fileName);
- }
-
///
/// Move the given scene object into a new region depending on which region its absolute position has moved
/// into.
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs
index 9e83f25650..d585b481a6 100644
--- a/OpenSim/Region/Environment/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs
@@ -215,7 +215,9 @@ namespace OpenSim.Region.Environment.Scenes
public void SaveNamedPrimsToXml2(string primName, string filename)
{
- CurrentOrFirstScene.SaveNamedPrimsToXml2( primName, filename);
+ IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
+ if (serialiser != null)
+ serialiser.SaveNamedPrimsToXml2(CurrentOrFirstScene, primName, filename);
}
///