From 401e9bc3b9083e106a9eb1b6bc6f2902e23cf9c0 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 22 May 2008 17:09:33 +0000 Subject: [PATCH] * Documentation for load/save xml methods * Insert the very rough beginning stubs for a save/load OpenSim archive facility that will load/save prim assets (textures & inventory) as well as the prim details themselves (our existing xml facilities). * This won't be ready for even rough testing for quite some time. * I'm doing this directly in the region server for now since this will be quicker to get something working (hence giving me the Serotonin boost that I need). However, there are very good arguments for later also including it (or moving it entirely) to the separate export executable which Sean stubbed out some time ago. --- OpenSim/Region/Application/OpenSimMain.cs | 8 ++++ .../Region/Application/OpenSimMainConsole.cs | 11 ++++++ .../Region/Environment/Scenes/SceneManager.cs | 39 ++++++++++++++++++- 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 61b4de0be9..ea7b0e7bd5 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs @@ -62,7 +62,15 @@ namespace OpenSim protected string proxyUrl; protected int proxyOffset = 0; + /// + /// The file used to load and save prim backup xml if none has been specified + /// protected const string DEFAULT_PRIM_BACKUP_FILENAME = "prim-backup.xml"; + + /// + /// The file use to load and save an opensim archive if none has been specified + /// + protected const string DEFAULT_OAR_BACKUP_FILENAME = "scene.oar.zip"; public string m_physicsEngine; public string m_meshEngineName; diff --git a/OpenSim/Region/Application/OpenSimMainConsole.cs b/OpenSim/Region/Application/OpenSimMainConsole.cs index ea1243e031..193bad4abd 100644 --- a/OpenSim/Region/Application/OpenSimMainConsole.cs +++ b/OpenSim/Region/Application/OpenSimMainConsole.cs @@ -359,6 +359,17 @@ namespace OpenSim m_sceneManager.LoadCurrentSceneFromXml2(DEFAULT_PRIM_BACKUP_FILENAME); } break; + + case "save-oar": + if (cmdparams.Length > 0) + { + m_sceneManager.SaveCurrentSceneToOar(cmdparams[0]); + } + else + { + m_sceneManager.SaveCurrentSceneToOar(DEFAULT_OAR_BACKUP_FILENAME); + } + break; case "plugin": m_sceneManager.SendCommandToPluginModules(cmdparams); diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index 15686320f9..68dfa2fd38 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs @@ -157,25 +157,62 @@ namespace OpenSim.Region.Environment.Scenes } } + /// + /// Save the prims in the current scene to an xml file in OpenSimulator's original 'xml' format + /// + /// public void SaveCurrentSceneToXml(string filename) { CurrentOrFirstScene.SavePrimsToXml(filename); } + /// + /// Load an xml file of prims in OpenSimulator's original 'xml' file format to the current scene + /// + /// + /// + /// public void LoadCurrentSceneFromXml(string filename, bool generateNewIDs, LLVector3 loadOffset) { CurrentOrFirstScene.LoadPrimsFromXml(filename, generateNewIDs, loadOffset); } - + + /// + /// Save the prims in the current scene to an xml file in OpenSimulator's current 'xml2' format + /// + /// public void SaveCurrentSceneToXml2(string filename) { CurrentOrFirstScene.SavePrimsToXml2(filename); } + /// + /// Load an xml file of prims in OpenSimulator's current 'xml2' file format to the current scene + /// public void LoadCurrentSceneFromXml2(string filename) { CurrentOrFirstScene.LoadPrimsFromXml2(filename); } + + /// + /// Save the current scene to an OpenSimulator archive. This archive will eventually include the prim's assets + /// as well as the details of the prims themselves. + /// + /// + public void SaveCurrentSceneToOar(string filename) + { + // TODO Nothing yet + } + + /// + /// Load an OpenSim archive into the current scene. This will load both the shapes of the prims and upload + /// their assets to the asset service. + /// + /// + public void LoadCurrentSceneFromOar(string filename) + { + // TODO Nothing yet + } [Obsolete("TODO: Remove this warning by 0.7")] public bool RunTerrainCmdOnCurrentScene(string[] cmdparams, ref string result)