예제 #1
0
 void OnMakeRootAgent(IScenePresence presence)
 {
     if ((presence.CallbackURI != null) && !presence.CallbackURI.Equals(""))
     {
         WebUtils.ServiceOSDRequest(presence.CallbackURI, null, "DELETE", 10000, false, false);
         presence.CallbackURI = null;
         ICapsService service = m_scene.RequestModuleInterface <ICapsService>();
         if (service != null)
         {
             IClientCapsService clientCaps = service.GetClientCapsService(presence.UUID);
             if (clientCaps != null)
             {
                 IRegionClientCapsService regionCaps = clientCaps.GetCapsService(m_scene.RegionInfo.RegionHandle);
                 if (regionCaps != null)
                 {
                     regionCaps.RootAgent = true;
                     foreach (IRegionClientCapsService regionClientCaps in clientCaps.GetCapsServices())
                     {
                         if (regionCaps.RegionHandle != regionClientCaps.RegionHandle)
                         {
                             regionClientCaps.RootAgent = false; //Reset any other agents that we might have
                         }
                     }
                 }
             }
         }
     }
 }
예제 #2
0
        void OnMakeRootAgent(IScenePresence presence)
        {
            ICapsService service = m_scene.RequestModuleInterface <ICapsService> ();

            if (service != null)
            {
                IClientCapsService clientCaps = service.GetClientCapsService(presence.UUID);
                if (clientCaps != null)
                {
                    IRegionClientCapsService regionCaps = clientCaps.GetCapsService(m_scene.RegionInfo.RegionHandle);
                    if (regionCaps != null)
                    {
                        regionCaps.RootAgent = true;
                        foreach (IRegionClientCapsService regionClientCaps in clientCaps.GetCapsServices())
                        {
                            if (regionCaps.RegionHandle != regionClientCaps.RegionHandle)
                            {
                                regionClientCaps.RootAgent = false; //Reset any other agents that we might have
                            }
                        }
                    }
                }
            }
            if ((presence.CallbackURI != null) && !presence.CallbackURI.Equals(""))
            {
                WebUtils.ServiceOSDRequest(presence.CallbackURI, null, "DELETE", 10000, false, false, false);
                presence.CallbackURI = null;
            }
#if (!ISWIN)
            Util.FireAndForget(delegate(object o)
            {
                DoPresenceUpdate(presence);
            });
#else
            Util.FireAndForget(o => DoPresenceUpdate(presence));
#endif
        }
예제 #3
0
        private List<GridRegion> GetRegions(IClientCapsService iClientCapsService)
        {
#if(!ISWIN)
            List<GridRegion> regions = new List<GridRegion>();
            foreach(IRegionClientCapsService rcc in iClientCapsService.GetCapsServices())
                regions.Add(rcc.Region);
            return regions;
#else
            return iClientCapsService.GetCapsServices().Select(rccs => rccs.Region).ToList();
#endif
        }
예제 #4
0
 List<GridRegion> GetRegions(IClientCapsService iClientCapsService)
 {
     return iClientCapsService.GetCapsServices().Select(rccs => rccs.Region).ToList();
 }
예제 #5
0
        private List<GridRegion> GetRegions (IClientCapsService iClientCapsService)
        {
            List<GridRegion> regions = new List<GridRegion>();

            foreach(IRegionClientCapsService rccs in iClientCapsService.GetCapsServices())
                regions.Add(rccs.Region);
            return regions;
        }