public static InspectTabBase OpenTab(Type inspectTabType) { MainTabWindow_Inspect mainTabWindow_Inspect = (MainTabWindow_Inspect)MainButtonDefOf.Inspect.TabWindow; InspectTabBase t = null; if (mainTabWindow_Inspect.CurTabs != null) { IList list = mainTabWindow_Inspect.CurTabs as IList; if (list != null) { for (int i = 0; i < list.Count && !FindFunction((InspectTabBase)list[i]); i++) { } } else { using (IEnumerator <InspectTabBase> enumerator = mainTabWindow_Inspect.CurTabs.GetEnumerator()) { while (enumerator.MoveNext() && !FindFunction(enumerator.Current)) { } } } } if (t != null) { if (Find.MainTabsRoot.OpenTab != MainButtonDefOf.Inspect) { Find.MainTabsRoot.SetCurrentTab(MainButtonDefOf.Inspect); } if (!IsOpen(t, mainTabWindow_Inspect)) { ToggleTab(t, mainTabWindow_Inspect); } } return(t); bool FindFunction(InspectTabBase inspect) { if (inspectTabType.IsAssignableFrom(inspect.GetType())) { return(true); } return(false); } }
public static InspectTabBase OpenTab(Type inspectTabType) { MainTabWindow_Inspect mainTabWindow_Inspect = (MainTabWindow_Inspect)MainButtonDefOf.Inspect.TabWindow; InspectTabBase inspectTabBase = (from t in mainTabWindow_Inspect.CurTabs where inspectTabType.IsAssignableFrom(t.GetType()) select t).FirstOrDefault <InspectTabBase>(); if (inspectTabBase != null) { if (Find.MainTabsRoot.OpenTab != MainButtonDefOf.Inspect) { Find.MainTabsRoot.SetCurrentTab(MainButtonDefOf.Inspect, true); } if (!InspectPaneUtility.IsOpen(inspectTabBase, mainTabWindow_Inspect)) { InspectPaneUtility.ToggleTab(inspectTabBase, mainTabWindow_Inspect); } } return(inspectTabBase); }