private static ImmutableArray <InteractionType> LoadAboutInteractionTypes(InteractionGroup interactionGroup)
        {
            var aboutInteractionCodes = interactionGroup.InteractionFamilies.FirstOrDefault(i => i.Type == "AboutItems").InteractionTypeCodes;
            var aboutInteractionTypes = interactionGroup.InteractionTypes
                                        .Where(i => aboutInteractionCodes.Contains(i.Code))
                                        .OrderBy(i => i.Order)
                                        .ToImmutableArray();

            return(aboutInteractionTypes);
        }
    public void UnRegisterGroupChangedListener(INTERACTION group, IInteractionGroupListener listener)
    {
        InteractionGroup interactionGroup = null;

        if (!groupLists.TryGetValue(group, out interactionGroup) || interactionGroup.groupListeners.Count == 0)
        {
            return;
        }
        interactionGroup.groupListeners.Remove(listener);
    }
示例#3
0
        /*
         * Methods
         */

        public void AddInteractionUID(string triggerName, int uid)
        {
            InteractionGroup group;

            if (!_interactionGroupDic.TryGetValue(triggerName, out group))
            {
                group = new InteractionGroup(triggerName);
                _interactionGroupDic.Add(triggerName, group);
            }
            group.interactionUID.Add(uid);
        }
    public static List <InteractionController> GetObjsWithInteraction(INTERACTION group)
    {
        InteractionGroup interactionGroup = null;

        if (!instance.groupLists.TryGetValue(group, out interactionGroup))
        {
            return(new List <InteractionController>());
        }

        return(interactionGroup.objsInGroup);
    }
    public void UnregisterWithGroup(INTERACTION group, InteractionController interactionCont)
    {
        InteractionGroup interactionGroup = null;

        if (!groupLists.TryGetValue(group, out interactionGroup) || interactionGroup.objsInGroup.Count == 0)
        {
            return;
        }
        if (interactionGroup.objsInGroup.Remove(interactionCont))
        {
            foreach (IInteractionGroupListener listener in interactionGroup.groupListeners)
            {
                listener.ObjRemovedFromInteractionGroup(group, interactionCont);
            }
        }
    }
    public void RegisterGroupChangedListener(INTERACTION group, IInteractionGroupListener listener)
    {
        InteractionGroup interactionGroup = null;

        if (!groupLists.TryGetValue(group, out interactionGroup))
        {
            interactionGroup  = new InteractionGroup();
            groupLists[group] = interactionGroup;
        }

        // add to group listers, avoid duplicates
        if (interactionGroup.groupListeners.Contains(listener))
        {
            return;
        }
        else
        {
            interactionGroup.groupListeners.Add(listener);
        }
    }
    public void RegisterWithGroup(INTERACTION group, InteractionController interactionCont)
    {
        InteractionGroup interactionGroup = null;

        if (!groupLists.TryGetValue(group, out interactionGroup))
        {
            interactionGroup  = new InteractionGroup();
            groupLists[group] = interactionGroup;
        }

        // add obj to group, avoid duplicates
        if (interactionGroup.objsInGroup.Contains(interactionCont))
        {
            return;
        }
        else
        {
            interactionGroup.objsInGroup.Add(interactionCont);
            foreach (IInteractionGroupListener listener in interactionGroup.groupListeners)
            {
                listener.ObjAddedToInteractionGroup(group, interactionCont);
            }
        }
    }