Exemple #1
0
        /// <summary>
        /// Send the Augmenta event of corresponding type, according to the desired object.
        /// </summary>
        /// <param name="eventType"></param>
        /// <param name="augmentaObject"></param>
        public void SendAugmentaEvent(AugmentaEventType eventType, AugmentaObject augmentaObject = null, AugmentaDataType augmentaDataType = AugmentaDataType.Main)
        {
            switch (eventType)
            {
            case AugmentaEventType.AugmentaObjectEnter:
                augmentaObjectEnter?.Invoke(augmentaObject, augmentaDataType);
                break;

            case AugmentaEventType.AugmentaObjectUpdate:
                augmentaObjectUpdate?.Invoke(augmentaObject, augmentaDataType);
                break;

            case AugmentaEventType.AugmentaObjectLeave:
                augmentaObjectLeave?.Invoke(augmentaObject, augmentaDataType);
                break;

            case AugmentaEventType.SceneUpdated:
                sceneUpdated?.Invoke();
                break;

            case AugmentaEventType.FusionUpdated:
                fusionUpdated?.Invoke();
                break;
            }
        }
Exemple #2
0
    public void SendAugmentaEvent(AugmentaEventType type, AugmentaPerson person = null)
    {
        if (ActualPointType == AugmentaPointType.Oldest && type != AugmentaEventType.SceneUpdated)
        {
            var askedOldest = GetOldestPoints(AskedPoints);
            if (!askedOldest.Contains(person))
            {
                type = AugmentaEventType.PersonWillLeave;
            }
        }

        if (ActualPointType == AugmentaPointType.Newest && type != AugmentaEventType.SceneUpdated)
        {
            var askedNewest = GetNewestPoints(AskedPoints);
            if (!askedNewest.Contains(person))
            {
                type = AugmentaEventType.PersonWillLeave;
            }
        }

        switch (type)
        {
        case AugmentaEventType.PersonEntered:
            if (personEntered != null)
            {
                personEntered(person);
            }
            break;

        case AugmentaEventType.PersonUpdated:
            if (personUpdated != null)
            {
                personUpdated(person);
            }
            break;

        case AugmentaEventType.PersonWillLeave:
            if (personLeaving != null)
            {
                personLeaving(person);
            }
            break;

        case AugmentaEventType.SceneUpdated:
            if (sceneUpdated != null)
            {
                sceneUpdated(augmentaScene);
            }
            break;
        }
    }