示例#1
0
 /// <summary>
 ///     Reset all lists that have to deal with what updates the viewer has
 /// </summary>
 public void Close()
 {
     if (m_presence == null)
     {
         return;
     }
     m_SentInitialObjects = false;
     m_prioritizer        = null;
     m_culler             = null;
     m_inUse    = false;
     m_queueing = false;
     lock (m_objectUpdatesToSendLock)
         m_objectUpdatesToSend.Clear();
     lock (m_presenceUpdatesToSendLock)
         m_presenceUpdatesToSend.Clear();
     lock (m_presenceAnimationsToSendLock)
         m_presenceAnimationsToSend.Clear();
     lock (m_lastPresencesInViewLock)
         lastPresencesDInView.Clear();
     lock (m_objectPropertiesToSendLock)
         m_objectPropertiesToSend.Clear();
     lastGrpsInView.Clear();
     m_presence.OnSignificantClientMovement         -= SignificantClientMovement;
     m_presence.Scene.EventManager.OnMakeChildAgent -= EventManager_OnMakeChildAgent;
     m_scene.EventManager.OnClosingClient           -= EventManager_OnClosingClient;
     m_presence.Scene.AuroraEventManager.UnregisterEventHandler("DrawDistanceChanged",
                                                                AuroraEventManager_OnGenericEvent);
     m_presence.Scene.AuroraEventManager.UnregisterEventHandler("SignficantCameraMovement",
                                                                AuroraEventManager_OnGenericEvent);
     m_presence = null;
 }
示例#2
0
 public SceneViewer(IScenePresence presence)
 {
     m_presence = presence;
     m_scene    = presence.Scene;
     m_presence.OnSignificantClientMovement         += SignificantClientMovement;
     m_presence.Scene.EventManager.OnMakeChildAgent += EventManager_OnMakeChildAgent;
     m_scene.EventManager.OnClosingClient           += EventManager_OnClosingClient;
     m_presence.Scene.AuroraEventManager.RegisterEventHandler("DrawDistanceChanged",
                                                              AuroraEventManager_OnGenericEvent);
     m_presence.Scene.AuroraEventManager.RegisterEventHandler("SignficantCameraMovement",
                                                              AuroraEventManager_OnGenericEvent);
     m_prioritizer = new Prioritizer(presence.Scene);
     m_culler      = new Culler(presence.Scene);
 }