コード例 #1
0
        public void WindlightRefreshForced(IScenePresence isp, int interpolate)
        {
            List <byte[]> ls = null;

            IClientAPI client = isp.ControllingClient;

            if (!client.IsActive)
            {
                return;
            }

            uint vflags = client.GetViewerCaps();

            if ((vflags & 0x8000) != 0)
            {
                ScenePresence sp = isp as ScenePresence;
                ILandObject   lo = m_scene.LandChannel.GetLandObject(sp.AbsolutePosition.X, sp.AbsolutePosition.Y);
                if (lo != null && lo.LandData != null && lo.LandData.Environment != null)
                {
                    lo.SendLandUpdateToClient(client);
                }
                m_estateModule.HandleRegionInfoRequest(client);
            }
            else if ((vflags & 0x4000) != 0)
            {
                m_eventQueue.WindlightRefreshEvent(interpolate, client.AgentId);
            }
            else
            {
                if (ls == null)
                {
                    ls = MakeLightShareData();
                }
                SendLightShare(client, ls);
            }
        }
コード例 #2
0
        public void SendLandUpdate(ScenePresence avatar, ILandObject over)
        {
            if (avatar.IsChildAgent)
                return;

            if (over != null)
            {
                   over.SendLandUpdateToClient(avatar.ControllingClient);
// sl doesnt seem to send this now, as it used 2
//                    SendParcelOverlay(avatar.ControllingClient);
            }
        }