public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameTechMenu windowController = (Window_InGameTechMenu)Element.Window.Controller; if (elementAsType.Buttons.Count <= 0) { elementAsType.ClearButtons(); List <TechMenu> menus = TechMenuTable.Instance.Rows; int menuIndex = 0; for (int x = 0; x < menus.Count; x++) { TechMenu item = menus[x]; if (item.DoNotShowOnTechMenu) { continue; } bMenuSelectionItem newButtonController = new bMenuSelectionItem(x); Vector2 offset; offset.x = menuIndex * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); menuIndex++; } windowController.MenuIndexChangedSinceLastButtonSetUpdate = true; } }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameTechMenu windowController = (Window_InGameTechMenu)Element.Window.Controller; if (windowController.MenuIndexChangedSinceLastButtonSetUpdate) { elementAsType.ClearButtons(); TechMenu menu = TechMenuTable.Instance.Rows[windowController.CurrentMenuIndex]; if (menu != null) { int shownColumnCount = 0; for (int x = 0; x < menu.Columns.Count; x++) { bool haveShownAnythingInThisColumn = false; List <TechTypeData> column = menu.Columns[x]; for (int y = 0; y < column.Count; y++) { TechTypeData item = column[y]; if (item.NotOnMainTechMenu) { continue; } if (item.Prerequisite != null) { TechTypeData prereq = item.Prerequisite; bool foundOne = false; while (prereq != null) { if ((prereq.Prerequisite == null && !prereq.NotOnMainTechMenu) || localSide.GetHasResearched(prereq)) { foundOne = true; break; } prereq = prereq.Prerequisite; } if (!foundOne) { continue; } } //if ( localSide.GetCanResearch( item ) != ArcenRejectionReason.Unknown && // !localSide.UnlockedTechs.Contains( item ) ) // continue; haveShownAnythingInThisColumn = true; bTechItem newButtonController = new bTechItem(item); Vector2 offset; offset.x = shownColumnCount * elementAsType.ButtonWidth; offset.y = y * elementAsType.ButtonHeight; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); } if (haveShownAnythingInThisColumn) { shownColumnCount++; } } } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); windowController.MenuIndexChangedSinceLastButtonSetUpdate = false; } }
public Window_InGameTechMenu() { Instance = this; this.OnlyShowInGame = true; }