private void AddWarehouseBuildingPropertiesButton(WarehouseWorldInfoPanel infoPanel, out UIButton button, Vector3 offset) { button = UiUtils.CreateToggleButton(infoPanel.component, offset, UIAlignAnchor.BottomLeft, (comp, e) => { PanelType = InfoPanelType.Warehouse; InstanceID instanceID = InstanceHelper.GetInstanceID(infoPanel); var building = BuildingManager.instance.m_buildings.m_buffer[instanceID.Building].Info; try { if (WarehousePanelWrapper == null || building != CurrentSelectedBuilding) { WarehousePanelWrapper = building.GenerateWarehouseCustomizeItExtendedPanel(); } else { WarehousePanelWrapper.isVisible = false; UiUtils.DeepDestroy(WarehousePanelWrapper); } } catch (Exception ex) { Debug.Log($"{ex.Message} - {ex.StackTrace}"); } if (comp.hasFocus) { comp.Unfocus(); } }); }
private void AddPanelButtons() { if (_isButtonInitialized) { return; } ServiceBuildingPanel = GameObject.Find("(Library) CityServiceWorldInfoPanel") .GetComponent <CityServiceWorldInfoPanel>(); if (ServiceBuildingPanel == null) { return; } var defaultPosition = new Vector3(160f, 5f, 0f); if (ModToolsCompatibilityPatch.IsModToolsActive() && ModToolsCompatibilityPatch.AreGamePanelExtensionsActive()) { defaultPosition = new Vector3(160, -75f, 0f); } AddDefaultBuildingPropertiesButton(ServiceBuildingPanel, out _customizeItExtendedButton, defaultPosition); WarehousePanel = GameObject.Find("(Library) WarehouseWorldInfoPanel") .GetComponent <WarehouseWorldInfoPanel>(); if (WarehousePanel == null) { return; } AddWarehouseBuildingPropertiesButton(WarehousePanel, out _warehouseButton, new Vector3(68f, -35f, 0f)); UniqueFactoryWorldInfoPanel = GameObject.Find("(Library) UniqueFactoryWorldInfoPanel") .GetComponent <UniqueFactoryWorldInfoPanel>(); if (UniqueFactoryWorldInfoPanel == null) { return; } AddUniqueFactoriesBuildingPropertiesButton(UniqueFactoryWorldInfoPanel, out _uniqueFactoryButton, new Vector3(25f, -90f, 0f)); ZoneBuildingPanel = GameObject.Find("(Library) ZonedBuildingWorldInfoPanel") .GetComponent <ZonedBuildingWorldInfoPanel>(); if (CustomizeItExtendedMod.DebugMode) { AddBuildingInformationButton(ZoneBuildingPanel, out _zonedInfoButton, new Vector3(120f, 5f, 0f)); } ShelterInfoPanel = GameObject.Find("(Library) ShelterWorldInfoPanel").GetComponent <ShelterWorldInfoPanel>(); Vector3 shelterPos = new Vector3(160f, 257f, 0f); AddDefaultBuildingPropertiesButton(ShelterInfoPanel, out _shelterInfoButton, new Vector3(160f, -231f, 0f)); _isButtonInitialized = true; }