Ejemplo n.º 1
0
 private double?AvatarAppearancePrioritizer(InterestListEvent eventData, IScenePresence presence)
 {
     if (eventData.State != presence)
     {
         return(InterestListEventHandler.DefaultPrioritizer(eventData, presence).Value + 1.0); // Add one so the ObjectUpdate for this avatar has a higher priority
     }
     else
     {
         return(null); // Don't send AvatarAppearance packets to the agent controlling the avatar
     }
 }
Ejemplo n.º 2
0
        private double?ViewerEffectPrioritizer(InterestListEvent eventData, IScenePresence presence)
        {
            // Don't bother sending ViewerEffect packets further away than this
            const float VIEWER_EFFECT_CUTOFF = 64.0f * 64.0f;

            float distanceSq = Vector3.DistanceSquared(presence.ScenePosition, eventData.ScenePosition);

            if (distanceSq <= VIEWER_EFFECT_CUTOFF)
            {
                return(InterestListEventHandler.DefaultPrioritizer(eventData, presence));
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        private double?ChatPrioritizer(InterestListEvent eventData, IScenePresence presence)
        {
            ChatArgs args = (ChatArgs)eventData.State;

            switch (args.Type)
            {
            case EntityChatType.Owner:
            case EntityChatType.Debug:
                return(0.0);

            case EntityChatType.Broadcast:
                return(1.0);

            default:
                return(InterestListEventHandler.DefaultPrioritizer(eventData, presence));
            }
        }
Ejemplo n.º 4
0
        private double?TypingPrioritizer(InterestListEvent eventData, IScenePresence presence)
        {
            // This prioritizer will return the distance of the typing source to the current scene
            // presence. Lower numbers mean a higher priority, so the closer the source the
            // higher the priority. If the event is out of range for its audible distance,
            // the event will be suppressed entirely

            float distanceSq = Vector3.DistanceSquared(eventData.ScenePosition, presence.ScenePosition);

            if (distanceSq < NORMAL_DIST * NORMAL_DIST)
            {
                return(InterestListEventHandler.DefaultPrioritizer(eventData, presence));
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 5
0
        private void PresenceAddHandler(object sender, PresenceArgs e)
        {
            m_scene.ForEachPresence(
                delegate(IScenePresence presence)
            {
                InterestListEvent eventData = new InterestListEvent
                                              (
                    UUID.Combine(presence.ID, APPEARANCE_EVENT_ID),
                    AVATAR_APPEARANCE,
                    presence.ScenePosition,
                    presence.Scale,
                    presence
                                              );

                m_scene.CreateInterestListEventFor(e.Presence, eventData);
            }
                );
        }
Ejemplo n.º 6
0
Archivo: Chat.cs Proyecto: thoys/simian
        private double? TypingPrioritizer(InterestListEvent eventData, IScenePresence presence)
        {
            // This prioritizer will return the distance of the typing source to the current scene
            // presence. Lower numbers mean a higher priority, so the closer the source the
            // higher the priority. If the event is out of range for its audible distance,
            // the event will be suppressed entirely

            float distanceSq = Vector3.DistanceSquared(eventData.ScenePosition, presence.ScenePosition);

            if (distanceSq < NORMAL_DIST * NORMAL_DIST)
                return InterestListEventHandler.DefaultPrioritizer(eventData, presence);
            else
                return null;
        }
Ejemplo n.º 7
0
Archivo: Chat.cs Proyecto: thoys/simian
 private double? ChatPrioritizer(InterestListEvent eventData, IScenePresence presence)
 {
     ChatArgs args = (ChatArgs)eventData.State;
     switch (args.Type)
     {
         case EntityChatType.Owner:
         case EntityChatType.Debug:
             return 0.0;
         case EntityChatType.Broadcast:
             return 1.0;
         default:
             return InterestListEventHandler.DefaultPrioritizer(eventData, presence);
     }
 }
Ejemplo n.º 8
0
        private double? ViewerEffectPrioritizer(InterestListEvent eventData, IScenePresence presence)
        {
            // Don't bother sending ViewerEffect packets further away than this
            const float VIEWER_EFFECT_CUTOFF = 64.0f * 64.0f;

            float distanceSq = Vector3.DistanceSquared(presence.ScenePosition, eventData.ScenePosition);

            if (distanceSq <= VIEWER_EFFECT_CUTOFF)
                return InterestListEventHandler.DefaultPrioritizer(eventData, presence);
            else
                return null;
        }
Ejemplo n.º 9
0
 private double? AnimationPrioritizer(InterestListEvent eventData, IScenePresence presence)
 {
     // Add one so the ObjectUpdate for this avatar has a higher priority
     return InterestListEventHandler.DefaultPrioritizer(eventData, presence).Value + 1.0;
 }
Ejemplo n.º 10
0
        private void PresenceAddHandler(object sender, PresenceArgs e)
        {
            m_scene.ForEachPresence(
                delegate(IScenePresence presence)
                {
                    InterestListEvent eventData = new InterestListEvent
                    (
                        UUID.Combine(presence.ID, APPEARANCE_EVENT_ID),
                        AVATAR_APPEARANCE,
                        presence.ScenePosition,
                        presence.Scale,
                        presence
                    );

                    m_scene.CreateInterestListEventFor(e.Presence, eventData);
                }
            );
        }
Ejemplo n.º 11
0
 private double? AvatarAppearancePrioritizer(InterestListEvent eventData, IScenePresence presence)
 {
     if (eventData.State != presence)
         return InterestListEventHandler.DefaultPrioritizer(eventData, presence).Value + 1.0; // Add one so the ObjectUpdate for this avatar has a higher priority
     else
         return null; // Don't send AvatarAppearance packets to the agent controlling the avatar
 }
Ejemplo n.º 12
0
 private double?AnimationPrioritizer(InterestListEvent eventData, IScenePresence presence)
 {
     // Add one so the ObjectUpdate for this avatar has a higher priority
     return(InterestListEventHandler.DefaultPrioritizer(eventData, presence).Value + 1.0);
 }