remove sceneGraph MoveObject and make it part of ProcessObjectGrabUpdate ( scene.PacketHandlers) where it belongs

LSLKeyTest
UbitUmarov 2016-08-21 20:00:27 +01:00
parent c631ffb943
commit 0baaa23bde
3 changed files with 19 additions and 7 deletions

View File

@ -377,7 +377,20 @@ namespace OpenSim.Region.Framework.Scenes
if (part == null) if (part == null)
return; return;
SceneObjectGroup obj = part.ParentGroup; SceneObjectGroup group = part.ParentGroup;
if(group == null || group.IsDeleted)
return;
if (Permissions.CanMoveObject(group.UUID, remoteClient.AgentId))// && PermissionsMngr.)
{
group.GrabMovement(objectID, offset, pos, remoteClient);
}
// This is outside the above permissions condition
// so that if the object is locked the client moving the object
// get's it's position on the simulator even if it was the same as before
// This keeps the moving user's client in sync with the rest of the world.
group.SendGroupTerseUpdate();
SurfaceTouchEventArgs surfaceArg = null; SurfaceTouchEventArgs surfaceArg = null;
if (surfaceArgs != null && surfaceArgs.Count > 0) if (surfaceArgs != null && surfaceArgs.Count > 0)
@ -391,9 +404,9 @@ namespace OpenSim.Region.Framework.Scenes
// or if we're meant to pass on touches anyway. Don't send to root prim // or if we're meant to pass on touches anyway. Don't send to root prim
// if prim touched is the root prim as we just did it // if prim touched is the root prim as we just did it
if (((part.ScriptEvents & scriptEvents.touch) == 0) || if (((part.ScriptEvents & scriptEvents.touch) == 0) ||
(part.PassTouches && (part.LocalId != obj.RootPart.LocalId))) (part.PassTouches && (part.LocalId != group.RootPart.LocalId)))
{ {
EventManager.TriggerObjectGrabbing(obj.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg); EventManager.TriggerObjectGrabbing(group.RootPart.LocalId, part.LocalId, part.OffsetPosition, remoteClient, surfaceArg);
} }
} }

View File

@ -3329,7 +3329,6 @@ namespace OpenSim.Region.Framework.Scenes
client.OnObjectRequest += RequestPrim; client.OnObjectRequest += RequestPrim;
client.OnObjectSelect += SelectPrim; client.OnObjectSelect += SelectPrim;
client.OnObjectDeselect += DeselectPrim; client.OnObjectDeselect += DeselectPrim;
client.OnGrabUpdate += m_sceneGraph.MoveObject;
client.OnSpinStart += m_sceneGraph.SpinStart; client.OnSpinStart += m_sceneGraph.SpinStart;
client.OnSpinUpdate += m_sceneGraph.SpinObject; client.OnSpinUpdate += m_sceneGraph.SpinObject;
client.OnDeRezObject += DeRezObjects; client.OnDeRezObject += DeRezObjects;
@ -3457,7 +3456,6 @@ namespace OpenSim.Region.Framework.Scenes
client.OnObjectRequest -= RequestPrim; client.OnObjectRequest -= RequestPrim;
client.OnObjectSelect -= SelectPrim; client.OnObjectSelect -= SelectPrim;
client.OnObjectDeselect -= DeselectPrim; client.OnObjectDeselect -= DeselectPrim;
client.OnGrabUpdate -= m_sceneGraph.MoveObject;
client.OnSpinStart -= m_sceneGraph.SpinStart; client.OnSpinStart -= m_sceneGraph.SpinStart;
client.OnSpinUpdate -= m_sceneGraph.SpinObject; client.OnSpinUpdate -= m_sceneGraph.SpinObject;
client.OnDeRezObject -= DeRezObjects; client.OnDeRezObject -= DeRezObjects;
@ -3472,6 +3470,7 @@ namespace OpenSim.Region.Framework.Scenes
client.OnRequestObjectPropertiesFamily -= m_sceneGraph.RequestObjectPropertiesFamily; client.OnRequestObjectPropertiesFamily -= m_sceneGraph.RequestObjectPropertiesFamily;
client.OnObjectPermissions -= HandleObjectPermissionsUpdate; client.OnObjectPermissions -= HandleObjectPermissionsUpdate;
client.OnGrabObject -= ProcessObjectGrab; client.OnGrabObject -= ProcessObjectGrab;
client.OnGrabUpdate -= ProcessObjectGrabUpdate;
client.OnDeGrabObject -= ProcessObjectDeGrab; client.OnDeGrabObject -= ProcessObjectDeGrab;
client.OnUndo -= m_sceneGraph.HandleUndo; client.OnUndo -= m_sceneGraph.HandleUndo;
client.OnRedo -= m_sceneGraph.HandleRedo; client.OnRedo -= m_sceneGraph.HandleRedo;

View File

@ -1674,7 +1674,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
} }
/* moved to scene ProcessObjectGrabUpdate
/// <summary> /// <summary>
/// Move the given object /// Move the given object
/// </summary> /// </summary>
@ -1699,7 +1699,7 @@ namespace OpenSim.Region.Framework.Scenes
group.SendGroupTerseUpdate(); group.SendGroupTerseUpdate();
} }
} }
*/
/// <summary> /// <summary>
/// Start spinning the given object /// Start spinning the given object
/// </summary> /// </summary>