* 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)0.6.0-stable
parent
23c4a409b7
commit
a89385818d
|
@ -85,10 +85,7 @@ namespace OpenSim.Region.DataSnapshot
|
||||||
|
|
||||||
#region IRegionModule
|
#region IRegionModule
|
||||||
|
|
||||||
public void Close()
|
public void Close() {}
|
||||||
{
|
|
||||||
m_log.Info("[DATASNAPSHOT]: Close called");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Initialise(Scene scene, IConfigSource config)
|
public void Initialise(Scene scene, IConfigSource config)
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,7 +107,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
|
|
||||||
foreach (string serialisedSceneObject in serialisedSceneObjects)
|
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");
|
m_log.Debug("[ARCHIVER]: Starting scripts");
|
||||||
|
@ -117,6 +120,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
sceneObject.CreateScriptInstances(0, true);
|
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");
|
m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="scene"></param>
|
/// <param name="scene"></param>
|
||||||
/// <param name="xmlString"></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);
|
SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -180,14 +180,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="scene"></param>
|
/// <param name="scene"></param>
|
||||||
/// <param name="xmlData"></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)
|
protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData)
|
||||||
{
|
{
|
||||||
SceneObjectGroup obj = new SceneObjectGroup(xmlData);
|
SceneObjectGroup obj = new SceneObjectGroup(xmlData);
|
||||||
|
|
||||||
scene.AddRestoredSceneObject(obj, true);
|
if (scene.AddRestoredSceneObject(obj, true))
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
|
else
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SavePrimsToXml2(Scene scene, string fileName)
|
public static void SavePrimsToXml2(Scene scene, string fileName)
|
||||||
|
|
|
@ -196,7 +196,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// If true, changes to the object will be reflected in its persisted data
|
/// If true, changes to the object will be reflected in its persisted data
|
||||||
/// If false, the persisted data will not be changed even if the object in the scene is changed
|
/// If false, the persisted data will not be changed even if the object in the scene is changed
|
||||||
/// </param>
|
/// </param>
|
||||||
protected internal void AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
/// <returns>
|
||||||
|
/// true if the object was added, false if an object with the same uuid was already in the scene
|
||||||
|
/// </returns>
|
||||||
|
protected internal bool AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
||||||
{
|
{
|
||||||
sceneObject.RegionHandle = m_regInfo.RegionHandle;
|
sceneObject.RegionHandle = m_regInfo.RegionHandle;
|
||||||
sceneObject.SetScene(m_parentScene);
|
sceneObject.SetScene(m_parentScene);
|
||||||
|
@ -208,7 +211,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
sceneObject.UpdateParentIDs();
|
sceneObject.UpdateParentIDs();
|
||||||
|
|
||||||
AddSceneObject(sceneObject, attachToBackup);
|
return AddSceneObject(sceneObject, attachToBackup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -220,14 +223,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// If true, the object is made persistent into the scene.
|
/// If true, the object is made persistent into the scene.
|
||||||
/// If false, the object will not persist over server restarts
|
/// If false, the object will not persist over server restarts
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <returns>true if the object was added, false if an object with the same uuid was already in the scene
|
/// <returns>
|
||||||
|
/// true if the object was added, false if an object with the same uuid was already in the scene
|
||||||
/// </returns>
|
/// </returns>
|
||||||
protected internal void AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
protected internal bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
||||||
{
|
{
|
||||||
// Ensure that we persist this new scene object
|
// Ensure that we persist this new scene object
|
||||||
sceneObject.HasGroupChanged = true;
|
sceneObject.HasGroupChanged = true;
|
||||||
|
|
||||||
AddSceneObject(sceneObject, attachToBackup);
|
return AddSceneObject(sceneObject, attachToBackup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -1665,9 +1665,9 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// Add an object into the scene that has come from storage
|
/// Add an object into the scene that has come from storage
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sceneObject"></param>
|
/// <param name="sceneObject"></param>
|
||||||
public void AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
public bool AddRestoredSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
||||||
{
|
{
|
||||||
m_innerScene.AddRestoredSceneObject(sceneObject, attachToBackup);
|
return m_innerScene.AddRestoredSceneObject(sceneObject, attachToBackup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1678,9 +1678,9 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// If true, the object is made persistent into the scene.
|
/// If true, the object is made persistent into the scene.
|
||||||
/// If false, the object will not persist over server restarts
|
/// If false, the object will not persist over server restarts
|
||||||
/// </param>
|
/// </param>
|
||||||
public void AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
public bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup)
|
||||||
{
|
{
|
||||||
m_innerScene.AddNewSceneObject(sceneObject, attachToBackup);
|
return m_innerScene.AddNewSceneObject(sceneObject, attachToBackup);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -77,7 +77,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
|
||||||
if (null == m_host)
|
if (null == m_host)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat(
|
m_log.ErrorFormat(
|
||||||
"[{0}]: Could not get scene object part corresponding to localID {1} to start script",
|
"[{0}]: Could not find scene object part corresponding to localID {1} to start script",
|
||||||
m_scriptEngine.ScriptEngineName, localID);
|
m_scriptEngine.ScriptEngineName, localID);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue