/// <summary> /// Add the Entity to the Scene and back it up, but do NOT reset its ID's /// </summary> /// <param name="entity"></param> /// <returns></returns> public bool RestorePrimToScene(EntityBase entity) { List<ISceneEntity> children = entity.ChildrenEntities(); //Sort so that we rebuild in the same order and the root being first children.Sort(linkSetSorter); entity.ClearChildren(); foreach (ISceneEntity child in children) { if (((SceneObjectPart)child).PhysActor != null) ((SceneObjectPart)child).PhysActor.LocalID = child.LocalId; if (child.LocalId == 0) child.LocalId = AllocateLocalId(); entity.AddChild(child, child.LinkNum); } //Tell the entity that they are being added to a scene entity.AttachToScene(m_parentScene); //Now save the entity that we have return AddEntity(entity, false); }
/// <summary> /// Add the Entity to the Scene and back it up /// </summary> /// <param name="entity"></param> /// <returns></returns> public bool AddPrimToScene(EntityBase entity) { //Reset the entity IDs ResetEntityIDs(entity); //Force the prim to backup now that it has been added entity.ForcePersistence(); //Tell the entity that they are being added to a scene entity.AttachToScene(m_parentScene); //Now save the entity that we have return AddEntity(entity, false); }