Exemple #1
0
        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;
            }
        }
Exemple #2
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);
        }
Exemple #3
0
 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();
 }
Exemple #4
0
        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;
        }
Exemple #5
0
        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));
                    }
                }
            };
        }