コード例 #1
0
        public bool MakeChildAgent(UUID AgentID, GridRegion destination, bool isCrossing)
        {
            MakeChildAgentRequest request = new MakeChildAgentRequest();

            request.AgentID     = AgentID;
            request.Destination = destination;
            request.IsCrossing  = isCrossing;

            m_syncMessagePoster.Post(destination.ServerURI, request.ToOSD());
            return(true);
        }
コード例 #2
0
        OSDMap LocalSimulationServiceConnector_OnMessageReceived(OSDMap message)
        {
            if (!message.ContainsKey("Method"))
            {
                return(null);
            }
            switch (message["Method"].AsString())
            {
            case "CreateAgentRequest":
                CreateAgentRequest createAgentRequest = new CreateAgentRequest();
                createAgentRequest.FromOSD(message);
                CreateAgentResponse createAgentResponse = new CreateAgentResponse();
                createAgentResponse.Success = CreateAgent(createAgentRequest.Destination, createAgentRequest.CircuitData, createAgentRequest.TeleportFlags, out createAgentResponse);
                return(createAgentResponse.ToOSD());

            case "UpdateAgentPositionRequest":
                UpdateAgentPositionRequest updateAgentPositionRequest = new UpdateAgentPositionRequest();
                updateAgentPositionRequest.FromOSD(message);
                return(new OSDMap()
                {
                    new KeyValuePair <string, OSD>("Success", UpdateAgent(updateAgentPositionRequest.Destination, updateAgentPositionRequest.Update))
                });

            case "UpdateAgentDataRequest":
                UpdateAgentDataRequest updateAgentDataRequest = new UpdateAgentDataRequest();
                updateAgentDataRequest.FromOSD(message);
                return(new OSDMap()
                {
                    new KeyValuePair <string, OSD>("Success", UpdateAgent(updateAgentDataRequest.Destination, updateAgentDataRequest.Update))
                });

            case "FailedToMoveAgentIntoNewRegionRequest":
                FailedToMoveAgentIntoNewRegionRequest failedToMoveAgentIntoNewRegionRequest = new FailedToMoveAgentIntoNewRegionRequest();
                failedToMoveAgentIntoNewRegionRequest.FromOSD(message);
                FailedToMoveAgentIntoNewRegion(failedToMoveAgentIntoNewRegionRequest.AgentID, failedToMoveAgentIntoNewRegionRequest.RegionID);
                break;

            case "CloseAgentRequest":
                CloseAgentRequest closeAgentRequest = new CloseAgentRequest();
                closeAgentRequest.FromOSD(message);
                CloseAgent(closeAgentRequest.Destination, closeAgentRequest.AgentID);
                break;

            case "MakeChildAgentRequest":
                MakeChildAgentRequest makeChildAgentRequest = new MakeChildAgentRequest();
                makeChildAgentRequest.FromOSD(message);
                MakeChildAgent(makeChildAgentRequest.AgentID, makeChildAgentRequest.OldRegion, makeChildAgentRequest.Destination, makeChildAgentRequest.IsCrossing);
                break;

            case "FailedToTeleportAgentRequest":
                FailedToTeleportAgentRequest failedToTeleportAgentRequest = new FailedToTeleportAgentRequest();
                failedToTeleportAgentRequest.FromOSD(message);
                FailedToTeleportAgent(failedToTeleportAgentRequest.Destination, failedToTeleportAgentRequest.FailedRegionID,
                                      failedToTeleportAgentRequest.AgentID, failedToTeleportAgentRequest.Reason, failedToTeleportAgentRequest.IsCrossing);
                break;

            case "RetrieveAgentRequest":
                RetrieveAgentRequest retrieveAgentRequest = new RetrieveAgentRequest();
                retrieveAgentRequest.FromOSD(message);
                RetrieveAgentResponse retrieveAgentResponse = new RetrieveAgentResponse();
                retrieveAgentResponse.Success = RetrieveAgent(retrieveAgentRequest.Destination, retrieveAgentRequest.AgentID, retrieveAgentRequest.AgentIsLeaving,
                                                              out retrieveAgentResponse.AgentData, out retrieveAgentResponse.CircuitData);
                return(retrieveAgentResponse.ToOSD());

            case "CreateObjectRequest":
                CreateObjectRequest createObjectRequest = new CreateObjectRequest();
                createObjectRequest.FromOSD(message);
                createObjectRequest.Scene = GetScene(createObjectRequest.Destination.RegionID);
                createObjectRequest.DeserializeObject();
                return(new OSDMap()
                {
                    new KeyValuePair <string, OSD>("Success", CreateObject(createObjectRequest.Destination, createObjectRequest.Object))
                });
            }
            return(null);
        }