コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: LSLEventProvider.cs プロジェクト: ChrisD/opensim
        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);
                
        }