mirror of
https://github.com/opensim/opensim.git
synced 2026-08-08 10:15:33 +08:00
* Start scripts loaded from an archive
This commit is contained in:
@@ -100,10 +100,18 @@ 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>();
|
||||
|
||||
foreach (string serialisedSceneObject in serialisedSceneObjects)
|
||||
{
|
||||
serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject);
|
||||
sceneObjects.Add(serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject));
|
||||
}
|
||||
|
||||
m_log.Debug("[ARCHIVER]: Starting scripts");
|
||||
|
||||
foreach (SceneObjectGroup sceneObject in sceneObjects)
|
||||
{
|
||||
sceneObject.CreateScriptInstances(0, true);
|
||||
}
|
||||
|
||||
m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive");
|
||||
@@ -126,7 +134,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||
{
|
||||
sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension];
|
||||
|
||||
m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename);
|
||||
m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType);
|
||||
|
||||
AssetBase asset = new AssetBase(new LLUUID(uuid), String.Empty);
|
||||
asset.Type = assetType;
|
||||
|
||||
@@ -85,7 +85,8 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser
|
||||
/// </summary>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="xmlString"></param>
|
||||
void LoadGroupFromXml2(Scene scene, string xmlString);
|
||||
/// <returns>The scene object created</returns>
|
||||
SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString);
|
||||
|
||||
/// <summary>
|
||||
/// Serialize an individual scene object into the xml2 format
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
return grp.ToXmlString2();
|
||||
}
|
||||
|
||||
public static void LoadGroupFromXml2(Scene scene, string xmlString)
|
||||
public static SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString)
|
||||
{
|
||||
XmlDocument doc = new XmlDocument();
|
||||
XmlNode rootNode;
|
||||
@@ -126,11 +126,14 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
{
|
||||
CreatePrimFromXml2(scene, aPrimNode.OuterXml);
|
||||
}
|
||||
|
||||
// There is only ever one prim, but it's easiest to return null here since this part should disappear post 0.5.9 anyway
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
CreatePrimFromXml2(scene, rootNode.OuterXml);
|
||||
}
|
||||
return CreatePrimFromXml2(scene, rootNode.OuterXml);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -177,11 +180,14 @@ namespace OpenSim.Region.Environment.Scenes
|
||||
/// </summary>
|
||||
/// <param name="scene"></param>
|
||||
/// <param name="xmlData"></param>
|
||||
protected static void CreatePrimFromXml2(Scene scene, string xmlData)
|
||||
/// <returns>The scene object created</returns>
|
||||
protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData)
|
||||
{
|
||||
SceneObjectGroup obj = new SceneObjectGroup(xmlData);
|
||||
|
||||
scene.AddRestoredSceneObject(obj, true);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static void SavePrimsToXml2(Scene scene, string fileName)
|
||||
|
||||
@@ -112,9 +112,9 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser
|
||||
SceneXmlLoader.SavePrimsToXml2(scene, fileName);
|
||||
}
|
||||
|
||||
public void LoadGroupFromXml2(Scene scene, string xmlString)
|
||||
public SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString)
|
||||
{
|
||||
SceneXmlLoader.LoadGroupFromXml2(scene, xmlString);
|
||||
return SceneXmlLoader.LoadGroupFromXml2(scene, xmlString);
|
||||
}
|
||||
|
||||
public string SaveGroupToXml2(SceneObjectGroup grp)
|
||||
|
||||
Reference in New Issue
Block a user