* Give new uuids to all the objects loaded in from an archive.

* This should allow multiple copies of an archive to be loaded into different regions on the same region server
* This shouldn't affect existing operations.
0.6.0-stable
Justin Clarke Casey 2008-07-21 21:10:15 +00:00
parent 1ef7a05b3e
commit 714e1f6786
2 changed files with 9 additions and 7 deletions

View File

@ -123,6 +123,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
{ {
SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject); SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject);
// For now, give all incoming scene objects new uuids. This will allow scenes to be cloned
// on the same region server and multiple examples a single object archive to be imported
// to the same scene (when this is possible).
sceneObject.ResetIDs();
// Make the master the owner/creator of everything imported for now // Make the master the owner/creator of everything imported for now
LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID;
foreach (SceneObjectPart part in sceneObject.Children.Values) foreach (SceneObjectPart part in sceneObject.Children.Values)
@ -130,11 +135,6 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
part.CreatorID = masterAvatarId; part.CreatorID = masterAvatarId;
part.OwnerID = masterAvatarId; part.OwnerID = masterAvatarId;
part.LastOwnerID = masterAvatarId; part.LastOwnerID = masterAvatarId;
// For now, give all incoming scene objects new uuids. This will allow scenes to be cloned
// on the same region server and multiple examples a single object archive to be imported
// to the same scene (when this is possible).
//part.UUID = LLUUID.Random();
} }
if (m_scene.AddRestoredSceneObject(sceneObject, true, false)) if (m_scene.AddRestoredSceneObject(sceneObject, true, false))

View File

@ -2047,7 +2047,9 @@ namespace OpenSim.Region.Environment.Scenes
/// <param name="vel"></param> /// <param name="vel"></param>
/// <param name="param"></param> /// <param name="param"></param>
/// <returns></returns> /// <returns></returns>
public virtual SceneObjectGroup RezObject(SceneObjectPart sourcePart, TaskInventoryItem item, LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param) public virtual SceneObjectGroup RezObject(
SceneObjectPart sourcePart, TaskInventoryItem item,
LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param)
{ {
// Rez object // Rez object
if (item != null) if (item != null)