public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } Planet planet = Engine_AIW2.Instance.NonSim_GetPlanetBeingCurrentlyViewed(); ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameBuildMenu windowController = (Window_InGameBuildMenu)Element.Window.Controller; if (windowController.EntityChangedSinceLastButtonSetUpdate_Menu) { elementAsType.ClearButtons(); GameEntity entity = World_AIW2.Instance.GetEntityByID(windowController.EntityID); if (entity != null) { List <BuildMenu> menus = entity.TypeData.BuildMenus; int x = 0; for (int i = 0; i < menus.Count; i++) { BuildMenu item = menus[i]; if (item.RequiresPresenceOf != null) { bool foundIt = false; planet.Combat.DoForEntities(EntityRollupType.SpecialBuildMenuEnablers, delegate(GameEntity enabler) { if (enabler.TypeData != item.RequiresPresenceOf) { return(DelReturn.Continue); } foundIt = true; return(DelReturn.Break); }); if (!foundIt) { continue; } } bMenuSelectionItem newButtonController = new bMenuSelectionItem(entity.TypeData, i); Vector2 offset; offset.x = x * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); x++; } } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); windowController.EntityChangedSinceLastButtonSetUpdate_Menu = false; 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 (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; } }