private static void removeControls()
        {
            UITabContainer economyContainer = ToolsModifierControl.economyPanel.component.Find <UITabContainer>("EconomyContainer");

            if (economyContainer != null)
            {
                UIPanel budgetPanel = economyContainer.Find <UIPanel>("Budget");
                if (budgetPanel != null)
                {
                    AutobudgetObjectsContainer c = Singleton <AutobudgetManager> .instance.container;

                    foreach (AutobudgetBase obj in c.AllAutobudgetObjects)
                    {
                        UIPanel container = budgetPanel.Find <UIPanel>(obj.GetEconomyPanelContainerName());
                        if (container != null)
                        {
                            UIPanel budgetItem = container.Find <UIPanel>(obj.GetBudgetItemName());
                            if (budgetItem != null)
                            {
                                string controlName = AutobudgetItemPanel.GetControlNameFromItemName(obj.GetBudgetItemName());
                                AutobudgetItemPanel autobudgetItemControl = budgetItem.Find <AutobudgetItemPanel>(controlName);
                                if (autobudgetItemControl != null)
                                {
                                    budgetItem.RemoveUIComponent(autobudgetItemControl);
                                    Component.Destroy(autobudgetItemControl);
                                }
                            }
                        }
                    }
                }
            }
        }
        private static void updateCheckBox(UIPanel budgetPanel, string controlName, bool isChecked)
        {
            AutobudgetItemPanel autobudgetItem = budgetPanel.Find <AutobudgetItemPanel>(AutobudgetItemPanel.GetControlNameFromItemName(controlName));

            if (autobudgetItem != null)
            {
                autobudgetItem.isChecked = isChecked;
            }
        }
        private static void updateControlsPositions()
        {
            UIPanel budgetPanel = getBudgetPanel();

            if (budgetPanel != null)
            {
                AutobudgetObjectsContainer c = Singleton <AutobudgetManager> .instance.container;

                foreach (AutobudgetBase obj in c.AllAutobudgetObjects)
                {
                    AutobudgetItemPanel autobudgetItem = budgetPanel.Find <AutobudgetItemPanel>(AutobudgetItemPanel.GetControlNameFromItemName(obj.GetBudgetItemName()));
                    if (autobudgetItem != null)
                    {
                        autobudgetItem.UpdatePosition();
                    }
                }
            }
        }
        private static bool isAutobudgetItemControlsCreated()
        {
            UITabContainer economyContainer = ToolsModifierControl.economyPanel.component.Find <UITabContainer>("EconomyContainer");

            if (economyContainer != null)
            {
                UIPanel budgetPanel = economyContainer.Find <UIPanel>("Budget");
                if (budgetPanel != null)
                {
                    AutobudgetBase obj         = Singleton <AutobudgetManager> .instance.container.AllAutobudgetObjects[0];
                    string         controlName = AutobudgetItemPanel.GetControlNameFromItemName(obj.GetBudgetItemName());
                    if (budgetPanel.Find <UIPanel>(controlName) != null)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
        private static void createControls()
        {
            UITabContainer economyContainer = ToolsModifierControl.economyPanel.component.Find <UITabContainer>("EconomyContainer");

            if (economyContainer != null)
            {
                UIPanel budgetPanel = economyContainer.Find <UIPanel>("Budget");
                if (budgetPanel != null)
                {
                    AutobudgetObjectsContainer c = Singleton <AutobudgetManager> .instance.container;

                    foreach (AutobudgetBase obj in c.AllAutobudgetObjects)
                    {
                        UIPanel container = budgetPanel.Find <UIPanel>(obj.GetEconomyPanelContainerName());
                        if (container != null)
                        {
                            UIPanel budgetItem = container.Find <UIPanel>(obj.GetBudgetItemName());
                            if (budgetItem != null)
                            {
                                AutobudgetItemPanel autobudgetPanel = budgetItem.AddUIComponent <AutobudgetItemPanel>();
                                autobudgetPanel.SetName(obj.GetBudgetItemName());
                                autobudgetPanel.isChecked = obj.Enabled;
                                autobudgetPanel.SetCheckCallback(delegate(bool isChecked)
                                {
                                    if (!freezeUI)
                                    {
                                        obj.Enabled = isChecked;
                                        Mod.UpdateUI();
                                    }
                                });
                            }
                        }
                    }
                }
            }
        }