* 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:
Justin Clarke Casey
2008-07-12 22:14:38 +00:00
parent 23c4a409b7
commit a89385818d
7 changed files with 34 additions and 22 deletions

View File

@@ -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");
}

View File

@@ -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>

View File

@@ -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)