* Refactor: Fold sog.DeleteParts() functionality into existing sog.DeleteGroup()
parent
b290ce405f
commit
e19a76377c
|
@ -1670,7 +1670,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
/// <param name="group"></param>
|
/// <param name="group"></param>
|
||||||
public void DeleteSceneObject(SceneObjectGroup group)
|
public void DeleteSceneObject(SceneObjectGroup group)
|
||||||
{
|
{
|
||||||
SceneObjectPart rootPart = (group).GetChildPart(group.UUID);
|
SceneObjectPart rootPart = group.GetChildPart(group.UUID);
|
||||||
|
|
||||||
if (rootPart.PhysActor != null)
|
if (rootPart.PhysActor != null)
|
||||||
{
|
{
|
||||||
|
@ -1685,7 +1685,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
|
|
||||||
group.DeleteGroup();
|
group.DeleteGroup();
|
||||||
group.DeleteParts();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -931,12 +931,14 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
// code needs a redesign.
|
// code needs a redesign.
|
||||||
m_isDeleted = true;
|
m_isDeleted = true;
|
||||||
|
|
||||||
DetachFromBackup(this);
|
DetachFromBackup(this);
|
||||||
|
|
||||||
lock (m_parts)
|
lock (m_parts)
|
||||||
{
|
{
|
||||||
foreach (SceneObjectPart part in m_parts.Values)
|
foreach (SceneObjectPart part in m_parts.Values)
|
||||||
{
|
{
|
||||||
|
part.StopScripts();
|
||||||
|
|
||||||
List<ScenePresence> avatars = Scene.GetScenePresences();
|
List<ScenePresence> avatars = Scene.GetScenePresences();
|
||||||
for (int i = 0; i < avatars.Count; i++)
|
for (int i = 0; i < avatars.Count; i++)
|
||||||
{
|
{
|
||||||
|
@ -948,6 +950,9 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId);
|
avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_rootPart = null;
|
||||||
|
m_parts.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -968,23 +973,6 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Delete all the parts in this group.
|
|
||||||
/// </summary>
|
|
||||||
public void DeleteParts()
|
|
||||||
{
|
|
||||||
lock (m_parts)
|
|
||||||
{
|
|
||||||
foreach (SceneObjectPart part in m_parts.Values)
|
|
||||||
{
|
|
||||||
part.StopScripts();
|
|
||||||
}
|
|
||||||
|
|
||||||
m_rootPart = null;
|
|
||||||
m_parts.Clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddScriptLPS(int count)
|
public void AddScriptLPS(int count)
|
||||||
{
|
{
|
||||||
if (scriptScore + count >= float.MaxValue - count)
|
if (scriptScore + count >= float.MaxValue - count)
|
||||||
|
@ -1793,11 +1781,11 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
m_scene.UnlinkSceneObject(objectGroup.UUID, true);
|
m_scene.UnlinkSceneObject(objectGroup.UUID, true);
|
||||||
|
|
||||||
// TODO Deleting the parts may cause problems later on if they have already
|
// TODO Deleting the original group object may cause problems later on if they have already
|
||||||
// made it into the update queue. However, sending out updates for those parts is now
|
// made it into the update queue. However, sending out updates for those parts is now
|
||||||
// spurious, so it would be good not to send them at some point.
|
// spurious, so it would be good not to send them at some point.
|
||||||
// The traffic caused is always going to be pretty minor, so it's not high priority
|
// The traffic caused is always going to be pretty minor, so it's not high priority
|
||||||
//objectGroup.DeleteParts();
|
//objectGroup.DeleteGroup();
|
||||||
|
|
||||||
ScheduleGroupForFullUpdate();
|
ScheduleGroupForFullUpdate();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue