Exemplo n.º 1
0
        private static void AddPrefabMenuItems(ref GenericMenu menu, ActionUtility.ActionCreationParams actionParams)
        {
            Type        type = actionParams.parameter.GetType();
            List <Type> actionsSortedByCategory = ActionTargets.GetActionsSortedByCategory();

            using (List <Type> .Enumerator enumerator = actionsSortedByCategory.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Type current = enumerator.get_Current();
                    ActionUtility.ActionCreationParams actionCreationParams = new ActionUtility.ActionCreationParams(actionParams);
                    List <ActionTarget> actionTargets = ActionTargets.GetActionTargets(current);
                    using (List <ActionTarget> .Enumerator enumerator2 = actionTargets.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            ActionTarget current2 = enumerator2.get_Current();
                            if (current2.get_AllowPrefabs() && current2.get_ObjectType().IsAssignableFrom(type))
                            {
                                actionCreationParams.actionType   = current;
                                actionCreationParams.actionTarget = current2;
                                menu.AddItem(new GUIContent(Labels.GetActionLabel(current)), false, new GenericMenu.MenuFunction2(ActionUtility.AddAction), actionCreationParams);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        private static void AddObjectMenuItems(ref GenericMenu menu, ActionUtility.ActionCreationParams actionParams, bool isSubMenu = false)
        {
            Type        type = actionParams.parameter.GetType();
            string      text = isSubMenu ? (Labels.StripNamespace(type.get_FullName()) + '/') : "";
            List <Type> actionsSortedByCategory = ActionTargets.GetActionsSortedByCategory();

            using (List <Type> .Enumerator enumerator = actionsSortedByCategory.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Type current = enumerator.get_Current();
                    ActionUtility.ActionCreationParams actionCreationParams = new ActionUtility.ActionCreationParams(actionParams);
                    List <ActionTarget> actionTargets = ActionTargets.GetActionTargets(current);
                    using (List <ActionTarget> .Enumerator enumerator2 = actionTargets.GetEnumerator())
                    {
                        while (enumerator2.MoveNext())
                        {
                            ActionTarget current2 = enumerator2.get_Current();
                            if (ActionUtility.PinToTopOfMenu(current) && current2.get_ObjectType().IsAssignableFrom(type))
                            {
                                actionCreationParams.actionType   = current;
                                actionCreationParams.actionTarget = current2;
                                menu.AddItem(new GUIContent(text + Labels.GetActionLabel(current)), false, new GenericMenu.MenuFunction2(ActionUtility.AddAction), actionCreationParams);
                            }
                        }
                    }
                }
            }
            if (menu.GetItemCount() > 2)
            {
                menu.AddSeparator(text);
            }
            using (List <Type> .Enumerator enumerator3 = actionsSortedByCategory.GetEnumerator())
            {
                while (enumerator3.MoveNext())
                {
                    Type current3 = enumerator3.get_Current();
                    ActionUtility.ActionCreationParams actionCreationParams2 = new ActionUtility.ActionCreationParams(actionParams);
                    List <ActionTarget> actionTargets2 = ActionTargets.GetActionTargets(current3);
                    using (List <ActionTarget> .Enumerator enumerator4 = actionTargets2.GetEnumerator())
                    {
                        while (enumerator4.MoveNext())
                        {
                            ActionTarget current4 = enumerator4.get_Current();
                            if (!ActionUtility.PinToTopOfMenu(current3) && current4.get_ObjectType().IsAssignableFrom(type))
                            {
                                actionCreationParams2.actionType   = current3;
                                actionCreationParams2.actionTarget = current4;
                                string actionLabel = Labels.GetActionLabel(current3);
                                string text2       = Actions.GetActionCategory(current3) + '/';
                                menu.AddItem(new GUIContent(text + text2 + actionLabel), false, new GenericMenu.MenuFunction2(ActionUtility.AddAction), actionCreationParams2);
                            }
                        }
                    }
                }
            }
        }