* fix a bug where I was assuming all entities would be SceneObjectGroups - of course, some are ScenePresences
* would be nice to have a separate list in InnerScene in the future since a lot of methods end up screen entities for SOGs0.6.0-stable
parent
7d55dfba8a
commit
442a938a3f
|
@ -50,11 +50,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
protected IRegionSerialiser m_serialiser;
|
protected IRegionSerialiser m_serialiser;
|
||||||
protected List<EntityBase> m_sceneObjects;
|
protected List<SceneObjectGroup> m_sceneObjects;
|
||||||
protected string m_savePath;
|
protected string m_savePath;
|
||||||
|
|
||||||
public ArchiveWriteRequestExecution(
|
public ArchiveWriteRequestExecution(
|
||||||
List<EntityBase> sceneObjects, IRegionSerialiser serialiser, string savePath)
|
List<SceneObjectGroup> sceneObjects, IRegionSerialiser serialiser, string savePath)
|
||||||
{
|
{
|
||||||
m_sceneObjects = sceneObjects;
|
m_sceneObjects = sceneObjects;
|
||||||
m_serialiser = serialiser;
|
m_serialiser = serialiser;
|
||||||
|
@ -67,10 +67,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
|
|
||||||
TarArchiveWriter archive = new TarArchiveWriter();
|
TarArchiveWriter archive = new TarArchiveWriter();
|
||||||
|
|
||||||
foreach (EntityBase entity in m_sceneObjects)
|
foreach (SceneObjectGroup sceneObject in m_sceneObjects)
|
||||||
{
|
{
|
||||||
// FIXME: I'm fairly sure that all entities are in fact SceneObjectGroups... must fix this
|
//m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType());
|
||||||
SceneObjectGroup sceneObject = (SceneObjectGroup)entity;
|
|
||||||
LLVector3 position = sceneObject.AbsolutePosition;
|
LLVector3 position = sceneObject.AbsolutePosition;
|
||||||
|
|
||||||
string serializedObject = m_serialiser.SaveGroupToXml2(sceneObject);
|
string serializedObject = m_serialiser.SaveGroupToXml2(sceneObject);
|
||||||
|
|
|
@ -163,24 +163,31 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
|
||||||
Dictionary<LLUUID, int> assetUuids = new Dictionary<LLUUID, int>();
|
Dictionary<LLUUID, int> assetUuids = new Dictionary<LLUUID, int>();
|
||||||
|
|
||||||
List<EntityBase> entities = m_scene.GetEntities();
|
List<EntityBase> entities = m_scene.GetEntities();
|
||||||
|
List<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>();
|
||||||
|
|
||||||
|
// Filter entities so that we only have scene objects.
|
||||||
|
// FIXME: Would be nicer to have this as a proper list in InnerScene, since lots of methods
|
||||||
|
// end up having to do this
|
||||||
foreach (EntityBase entity in entities)
|
foreach (EntityBase entity in entities)
|
||||||
{
|
{
|
||||||
if (entity is SceneObjectGroup)
|
if (entity is SceneObjectGroup)
|
||||||
{
|
sceneObjects.Add((SceneObjectGroup)entity);
|
||||||
GetSceneObjectAssetUuids((SceneObjectGroup)entity, assetUuids);
|
}
|
||||||
}
|
|
||||||
|
foreach (SceneObjectGroup sceneObject in sceneObjects)
|
||||||
|
{
|
||||||
|
GetSceneObjectAssetUuids(sceneObject, assetUuids);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entities.Count > 0)
|
if (sceneObjects.Count > 0)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[ARCHIVER]: Successfully got serialization for {0} entities", entities.Count);
|
m_log.DebugFormat("[ARCHIVER]: Successfully got serialization for {0} scene objects", sceneObjects.Count);
|
||||||
m_log.DebugFormat("[ARCHIVER]: Requiring save of {0} assets", assetUuids.Count);
|
m_log.DebugFormat("[ARCHIVER]: Requiring save of {0} assets", assetUuids.Count);
|
||||||
|
|
||||||
// Asynchronously request all the assets required to perform this archive operation
|
// Asynchronously request all the assets required to perform this archive operation
|
||||||
ArchiveWriteRequestExecution awre
|
ArchiveWriteRequestExecution awre
|
||||||
= new ArchiveWriteRequestExecution(
|
= new ArchiveWriteRequestExecution(
|
||||||
entities, m_scene.RequestModuleInterface<IRegionSerialiser>(), m_savePath);
|
sceneObjects, m_scene.RequestModuleInterface<IRegionSerialiser>(), m_savePath);
|
||||||
new AssetsRequest(assetUuids.Keys, m_scene.AssetCache, awre.ReceivedAllAssets).Execute();
|
new AssetsRequest(assetUuids.Keys, m_scene.AssetCache, awre.ReceivedAllAssets).Execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -319,6 +319,7 @@ mesh_physical_lod = 16
|
||||||
;; append to existing physics logfile, or overwrite existing logfiles?
|
;; append to existing physics logfile, or overwrite existing logfiles?
|
||||||
;physics_logging_append_existing_logfile = true
|
;physics_logging_append_existing_logfile = true
|
||||||
|
|
||||||
|
|
||||||
[RemoteAdmin]
|
[RemoteAdmin]
|
||||||
enabled = false
|
enabled = false
|
||||||
access_password = unknown
|
access_password = unknown
|
||||||
|
@ -333,6 +334,7 @@ prefix = /admin
|
||||||
[RestRegionPlugin]
|
[RestRegionPlugin]
|
||||||
enabled = false
|
enabled = false
|
||||||
|
|
||||||
|
|
||||||
; Uncomment the following for IRC bridge
|
; Uncomment the following for IRC bridge
|
||||||
; experimental, so if it breaks... keep both parts... yada yada
|
; experimental, so if it breaks... keep both parts... yada yada
|
||||||
; also, not good error detection when it fails
|
; also, not good error detection when it fails
|
||||||
|
|
Loading…
Reference in New Issue