Eliminate multiple updates on link/unlink

avinationmerge
Melanie 2009-12-06 00:02:24 +00:00
parent 129de26032
commit ceccfe02d0
3 changed files with 14 additions and 4 deletions

View File

@ -1593,6 +1593,8 @@ namespace OpenSim.Region.Framework.Scenes
// occur on link to invoke this elsewhere (such as object selection) // occur on link to invoke this elsewhere (such as object selection)
parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected); parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected);
parentGroup.TriggerScriptChangedEvent(Changed.LINK); parentGroup.TriggerScriptChangedEvent(Changed.LINK);
parentGroup.HasGroupChanged = true;
parentGroup.ScheduleGroupForFullUpdate();
if (client != null) if (client != null)
{ {

View File

@ -2389,8 +2389,8 @@ namespace OpenSim.Region.Framework.Scenes
// unmoved prims! // unmoved prims!
ResetChildPrimPhysicsPositions(); ResetChildPrimPhysicsPositions();
HasGroupChanged = true; //HasGroupChanged = true;
ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
} }
/// <summary> /// <summary>
@ -2483,8 +2483,8 @@ namespace OpenSim.Region.Framework.Scenes
linkPart.Rezzed = RootPart.Rezzed; linkPart.Rezzed = RootPart.Rezzed;
HasGroupChanged = true; //HasGroupChanged = true;
ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
} }
/// <summary> /// <summary>

View File

@ -3588,6 +3588,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
parentPrim.DelinkFromGroup(part.LocalId, true); parentPrim.DelinkFromGroup(part.LocalId, true);
} }
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
if (parts.Count > 0) if (parts.Count > 0)
@ -3599,6 +3601,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.UpdateFlag = 0; part.UpdateFlag = 0;
newRoot.ParentGroup.LinkToGroup(part.ParentGroup); newRoot.ParentGroup.LinkToGroup(part.ParentGroup);
} }
newRoot.ParentGroup.HasGroupChanged = true;
newRoot.ParentGroup.ScheduleGroupForFullUpdate();
} }
} }
else else
@ -3607,6 +3611,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return; return;
parentPrim.DelinkFromGroup(childPrim.LocalId, true); parentPrim.DelinkFromGroup(childPrim.LocalId, true);
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
} }
} }
@ -3626,6 +3632,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
parentPrim.DelinkFromGroup(part.LocalId, true); parentPrim.DelinkFromGroup(part.LocalId, true);
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
} }
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
} }
public LSL_String llGetLinkKey(int linknum) public LSL_String llGetLinkKey(int linknum)