From c9fe500212cf8b8231ef0604a1f577e9bbedfcbe Mon Sep 17 00:00:00 2001 From: MW Date: Tue, 1 Jul 2008 19:23:45 +0000 Subject: Added "save-prims-xml2 ", as we were lacking a method to save a single primitive or small group of them. This command will save all prims in the current scene that name matches the "PrimName" parameter. The saved file is in standard xml2 format, so can be loaded using load-xml2 --- .../Modules/World/Serialiser/IRegionSerialiser.cs | 7 +++++++ .../Environment/Modules/World/Serialiser/SceneXmlLoader.cs | 13 +++++++++---- .../Modules/World/Serialiser/SerialiserModule.cs | 5 +++++ 3 files changed, 21 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/Environment/Modules/World/Serialiser') diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs index e6090a7..3ae7a54 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs @@ -74,6 +74,13 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser void SavePrimsToXml2(Scene scene, string fileName); /// + /// Save a set of prims in the xml2 format + /// + /// + /// + void SavePrimListToXml2(List entityList, string fileName); + + /// /// Load an individual scene object from the xml2 format /// /// diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs index ed211e4..9bab2b6 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs @@ -186,18 +186,23 @@ namespace OpenSim.Region.Environment.Scenes public static void SavePrimsToXml2(Scene scene, string fileName) { + List EntityList = scene.GetEntities(); + + SavePrimListToXml2(EntityList, fileName); + } + + public static void SavePrimListToXml2(List entityList, string fileName) + { FileStream file = new FileStream(fileName, FileMode.Create); StreamWriter stream = new StreamWriter(file); int primCount = 0; stream.WriteLine("\n"); - List EntityList = scene.GetEntities(); - - foreach (EntityBase ent in EntityList) + foreach (EntityBase ent in entityList) { if (ent is SceneObjectGroup) { - stream.WriteLine(((SceneObjectGroup) ent).ToXmlString2()); + stream.WriteLine(((SceneObjectGroup)ent).ToXmlString2()); primCount++; } } diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs index 28f3996..c7b5fa5 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs @@ -122,6 +122,11 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser return SceneXmlLoader.SaveGroupToXml2(grp); } + public void SavePrimListToXml2(List entityList, string fileName) + { + SceneXmlLoader.SavePrimListToXml2(entityList, fileName); + } + public List SerialiseRegion(Scene scene, string saveDir) { List results = new List(); -- cgit v1.1