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); } } } } } }
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); } } } } } }