mirror of
https://github.com/opensim/opensim.git
synced 2026-08-07 17:55:48 +08:00
* On archive loading, tell the user how many objects we are ignoring because they already exist in the scene
* (ability to give objects new uuids will come later)
This commit is contained in:
@@ -103,11 +103,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||
m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects", serialisedSceneObjects.Count);
|
||||
|
||||
IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>();
|
||||
ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>();
|
||||
ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>();
|
||||
|
||||
foreach (string serialisedSceneObject in serialisedSceneObjects)
|
||||
{
|
||||
sceneObjects.Add(serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject));
|
||||
{
|
||||
SceneObjectGroup sceneObject = serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject);
|
||||
|
||||
if (null != sceneObject)
|
||||
sceneObjects.Add(sceneObject);
|
||||
}
|
||||
|
||||
m_log.Debug("[ARCHIVER]: Starting scripts");
|
||||
@@ -117,6 +120,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||
sceneObject.CreateScriptInstances(0, true);
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Restored {0} objects to the scene", sceneObjects.Count);
|
||||
|
||||
int ignoredObjects = serialisedSceneObjects.Count - sceneObjects.Count;
|
||||
|
||||
if (ignoredObjects > 0)
|
||||
m_log.WarnFormat("[ARCHIVER]: Ignored {0} objects that already existed in the scene", ignoredObjects);
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive");
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser
|
||||
/// </summary>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="xmlString"></param>
|
||||
/// <returns>The scene object created</returns>
|
||||
/// <returns>The scene object created. null if the scene object already existed</returns>
|
||||
SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -180,14 +180,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
/// </summary>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="xmlData"></param>
|
||||
/// <returns>The scene object created</returns>
|
||||
/// <returns>The scene object created. null if the scene object already existed</returns>
|
||||
protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData)
|
||||
{
|
||||
SceneObjectGroup obj = new SceneObjectGroup(xmlData);
|
||||
|
||||
scene.AddRestoredSceneObject(obj, true);
|
||||
|
||||
return obj;
|
||||
if (scene.AddRestoredSceneObject(obj, true))
|
||||
return obj;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void SavePrimsToXml2(Scene scene, string fileName)
|
||||
|
||||
Reference in New Issue
Block a user