Пример #1
0
    public void AddHandler(IFriendTrackerHandler listener)
    {
        TrackedSceneInfo wrapper;

        if (listeners.TryGetValue(listener, out wrapper))
        {
            return;
        }

        wrapper = new TrackedSceneInfo(listener);

        if (friendsController.isInitialized)
        {
            ProcessNewListener(wrapper);
        }

        listeners.Add(listener, wrapper);
    }
Пример #2
0
    void ProcessNewListener(TrackedSceneInfo listener)
    {
        Vector2Int friendCoords = new Vector2Int();

        using (var friendIterator = friends.GetEnumerator())
        {
            while (friendIterator.MoveNext())
            {
                if (!friendIterator.Current.Value.IsOnline())
                {
                    continue;
                }

                friendCoords.x = (int)friendIterator.Current.Value.status.position.x;
                friendCoords.y = (int)friendIterator.Current.Value.status.position.y;

                if (listener.ContainCoords(friendCoords))
                {
                    friendIterator.Current.Value.AddListener(listener);
                }
            }
        }
    }
Пример #3
0
 void OnListenerRemoved(TrackedSceneInfo listener)
 {
     listener.OnListenerDisposed -= OnListenerDisposed;
     listener.OnFriendRemoved(profile);
 }
Пример #4
0
 void OnListenerDisposed(TrackedSceneInfo listener)
 {
     listener.OnListenerDisposed -= OnListenerDisposed;
     friendListeners.Remove(listener);
 }
Пример #5
0
 public void RemoveListener(TrackedSceneInfo listener)
 {
     OnListenerRemoved(listener);
     friendListeners.Remove(listener);
 }
Пример #6
0
 public void AddListener(TrackedSceneInfo listener)
 {
     listener.OnListenerDisposed += OnListenerDisposed;
     friendListeners.Add(listener);
     listener.OnFriendAdded(profile, backgroundColor);
 }