private void OnObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) { // Add to queue for all scripts in ObjectID object DetectParams[] det = new DetectParams[1]; det[0] = new DetectParams(); det[0].Key = remoteClient.AgentId; //det[0].Populate(World); if (originalID == 0) { SceneObjectPart part = CurrentRegion.Scene.GetSceneObjectPart(localID); if (part == null) { return; } det[0].LinkNum = part.LinkNum; } else { SceneObjectPart originalPart = CurrentRegion.Scene.GetSceneObjectPart(originalID); det[0].LinkNum = originalPart.LinkNum; } if (surfaceArgs != null) { det[0].SurfaceTouchArgs = surfaceArgs; } Shared.EventParams ep = new Shared.EventParams(localID, "touch_start", new Object[] { new LSL_Types.LSLInteger(1) }, det); CurrentRegion.Executors_Execute(ep); }
private void OnObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) { // Add to queue for all scripts in ObjectID object DetectParams[] det = new DetectParams[1]; det[0] = new DetectParams(); det[0].Key = remoteClient.AgentId; //det[0].Populate(World); if (originalID == 0) { SceneObjectPart part = CurrentRegion.Scene.GetSceneObjectPart(localID); if (part == null) return; det[0].LinkNum = part.LinkNum; } else { SceneObjectPart originalPart = CurrentRegion.Scene.GetSceneObjectPart(originalID); det[0].LinkNum = originalPart.LinkNum; } if (surfaceArgs != null) { det[0].SurfaceTouchArgs = surfaceArgs; } Shared.EventParams ep = new Shared.EventParams(localID, "touch_start", new Object[] {new LSL_Types.LSLInteger(1)}, det); CurrentRegion.Executors_Execute(ep); }