* For now, when loading an archive all the existing scene objects get deleted by default
							parent
							
								
									31e5d348f6
								
							
						
					
					
						commit
						9cb4ba9d6b
					
				| 
						 | 
				
			
			@ -112,6 +112,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
 | 
			
		|||
            if (failedAssetRestores > 0)
 | 
			
		||||
                m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores);
 | 
			
		||||
 | 
			
		||||
            m_log.Info("[ARCHIVER]: Clearing all existing scene objects");            
 | 
			
		||||
            m_scene.DeleteAllSceneObjects();
 | 
			
		||||
            
 | 
			
		||||
            // Reload serialized prims
 | 
			
		||||
            m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects.  Please wait.", serialisedSceneObjects.Count);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -122,6 +125,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
 | 
			
		|||
            {             
 | 
			
		||||
                SceneObjectGroup sceneObject = serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject);
 | 
			
		||||
                
 | 
			
		||||
                // TODO: Change object creator/owner here
 | 
			
		||||
                
 | 
			
		||||
                if (null != sceneObject)
 | 
			
		||||
                    sceneObjects.Add(sceneObject);
 | 
			
		||||
            }            
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1683,6 +1683,23 @@ namespace OpenSim.Region.Environment.Scenes
 | 
			
		|||
            return m_innerScene.AddNewSceneObject(sceneObject, attachToBackup);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Delete every object from the scene
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public void DeleteAllSceneObjects()
 | 
			
		||||
        {
 | 
			
		||||
            lock (Entities)
 | 
			
		||||
            {
 | 
			
		||||
                ICollection<EntityBase> entities = new List<EntityBase>(Entities.Values);
 | 
			
		||||
                
 | 
			
		||||
                foreach (EntityBase e in entities)
 | 
			
		||||
                {
 | 
			
		||||
                    if (e is SceneObjectGroup)
 | 
			
		||||
                        DeleteSceneObject((SceneObjectGroup)e);
 | 
			
		||||
                }
 | 
			
		||||
            }        
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Delete the given object from the scene.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue