protected override void Install(RExModule host) { if (Done) //Only one MenuAssets throughout the application { return; } RoadCategoryOrderManager.RegisterCategory(RExExtendedMenus.ROADS_TINY, 5); RoadCategoryOrderManager.RegisterCategory(RExExtendedMenus.ROADS_SMALL_HV, 20); RoadCategoryOrderManager.RegisterCategory(RExExtendedMenus.ROADS_BUSWAYS, 65); RoadCategoryOrderManager.RegisterCategory(RExExtendedMenus.ROADS_PEDESTRIANS, 75); var categories = host.Parts .OfType <IMenuItemBuilder>() .WhereActivated() .Select(mib => mib.UICategory) .Where(cat => !string.IsNullOrEmpty(cat)) .Distinct() .ToArray(); foreach (var cat in categories) { ExtendedMenuManager.RegisterNewCategory(cat, GeneratedGroupPanel.GroupFilter.Net, ItemClass.Service.Road); } Done = true; }
private IEnumerable <string> CollectAssetsNetInfoCategories() { for (uint num = 0; num < PrefabCollection <NetInfo> .LoadedCount(); num++) { var loaded = PrefabCollection <NetInfo> .GetLoaded(num); if (loaded != null && this.IsServiceValid(loaded) && this.IsPlacementRelevant(loaded)) { yield return(loaded.category); } } foreach (var cat in ExtendedMenuManager.GetNewCategories(GroupFilter.Net, service)) { yield return(cat); } }