public override void OnUpdate(float realTimeDelta, float simulationTimeDelta) { if (!FindComponents()) { return; } if (panel.component.isVisible) { ushort buildingId = ShelterWorldInfoPanel.GetCurrentInstanceID().Building; // display the right checkbox state onOffCheckBox.isChecked = Singleton <BuildingManager> .instance.m_buildings.m_buffer[buildingId].m_productionRate != 0; } }
public bool FindComponents() { if (panel != null && onOffCheckBox != null) { return(true); } panel = UIView.library.Get <ShelterWorldInfoPanel>(typeof(ShelterWorldInfoPanel).Name); if (panel == null) { return(false); } onOffCheckBox = panel.component.Find <UICheckBox>("On/Off"); return(onOffCheckBox != null); }
static void Postfix(ShelterWorldInfoPanel __instance) { Painter.instance.IsPanelVisible = true; Painter.instance.BuildingID = ((InstanceID)__instance.GetType().GetField("m_InstanceID", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance)).Building; Painter.instance.ColorFields[PanelType.Shelter].selectedColor = Painter.instance.GetColor(); }
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; }
public override void OnLevelLoaded(LoadMode mode) { if (batchToggleStateButton != null) { return; } ShelterWorldInfoPanel shelterInfoPanel = UIView.library.Get <ShelterWorldInfoPanel>(typeof(ShelterWorldInfoPanel).Name); UIButton button = shelterInfoPanel.component.AddUIComponent <UIButton>(); button.width = 200f; button.height = 40f; button.text = "Batch enable/disable"; // Style the button to look like a menu button. button.normalBgSprite = "ButtonMenu"; button.disabledBgSprite = "ButtonMenuDisabled"; button.hoveredBgSprite = "ButtonMenuHovered"; button.focusedBgSprite = "ButtonMenuFocused"; button.pressedBgSprite = "ButtonMenuPressed"; button.textColor = new Color32(255, 255, 255, 255); button.disabledTextColor = new Color32(7, 7, 7, 255); button.hoveredTextColor = new Color32(7, 132, 255, 255); button.focusedTextColor = new Color32(255, 255, 255, 255); button.pressedTextColor = new Color32(30, 30, 44, 255); // Enable button sounds. button.playAudioEvents = true; // Place the button. button.relativePosition = new Vector3(230f, 260f); batchToggleStateButton = button; button.eventClicked += (component, state) => { var buildingManager = Singleton <BuildingManager> .instance; if (!Singleton <BuildingManager> .exists) { return; } var serviceBuildings = buildingManager.GetServiceBuildings(ItemClass.Service.Disaster); if (serviceBuildings.m_buffer == null || serviceBuildings.m_size > serviceBuildings.m_buffer.Length) { return; } for (var index = 0; index < serviceBuildings.m_size; ++index) { var id = serviceBuildings.m_buffer[index]; var building = buildingManager.m_buildings.m_buffer[id]; var info = building.Info; if (info.m_buildingAI.GetType() == typeof(ShelterAI)) { Singleton <SimulationManager> .instance.AddAction(ToggleBuilding(id, !shelterInfoPanel.isCityServiceEnabled)); } } }; }