Ejemplo n.º 1
0
        /// <summary>
        /// Saves playermade changes and settings.
        /// </summary>
        public void saveSettings()
        {
            System.IO.Directory.CreateDirectory(filePath);
            if (File.Exists(filePath + fileNameSettings))
            {
                File.Delete(filePath + fileNameSettings);
            }

            BBSettings settings = new BBSettings();

            settings.expanseUpdateActive = _expenseUpdateActive;
            foreach (UIEmbeddedBudgetPanel panel in _embeddedBudgetPanelList)
            {
                BBEmbeddedSaveFile savefile = panel.getSettings();
                settings.embeddedPanelSettings.Add(savefile);
            }
            foreach (UICustomBudgetPanel panel in _customBudgetPanelList)
            {
                BBCustomSaveFile savefile = panel.getSettings();
                settings.customPanelSettings.Add(savefile);
            }


            TextWriter writer = null;

            try
            {
                var serializer = new XmlSerializer(typeof(BBSettings));
                writer = new StreamWriter(filePath + fileNameSettings, false);
                serializer.Serialize(writer, settings);
            }
            finally
            {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
        public void initialize(BetterBudget2 main, BBCustomSaveFile settings)
        {
            this._main = main;
            _main.addCustomPanel(this);
            this.settings         = new BBCustomSaveFile();
            this._timer           = new List <int>();
            this.relativePosition = new Vector3(settings.x, settings.y);
            this.isEditEnabled    = true;
            this.name             = "Custom Budget Panel";
            this.size             = new Vector2(settings.width, 46);
            this.mode             = Mode.Default;
            this.opacity          = settings.opacity;
            _sliderList           = new List <UIPanel>();
            backgroundSprite      = "MenuPanel2";

            // title
            title                  = AddUIComponent <UILabel>();
            title.text             = "Custom Budget Panel";
            title.relativePosition = new Vector3((width / 2) - ((title.text.Length / 2) * 8), 12);
            title.name             = "Title";


            // Drag Handler
            draghandler = AddUIComponent <UIDragHandle>();
            draghandler.relativePosition = new Vector3(0, 0);
            draghandler.target           = this;
            draghandler.name             = "Drag Handler";
            draghandler.size             = new Vector2(this.width, 41);

            // Resize Handler
            //resizehandler = AddUIComponent<UIResizeHandle>();
            //resizehandler.edges = UIResizeHandle.ResizeEdge.Right;

            // Quit Button
            quitButton                  = AddUIComponent <UIButton>();
            quitButton.name             = "Quit Button";
            quitButton.normalBgSprite   = "buttonclose";
            quitButton.pressedBgSprite  = "buttonclosehover";
            quitButton.hoveredBgSprite  = "buttonclosepressed";
            quitButton.focusedBgSprite  = "buttonclosehover";
            quitButton.eventClick      += deleteCustomPanel;
            quitButton.size             = new Vector2(36, 36);
            quitButton.relativePosition = new Vector3(width - 43, 2);

            // icon
            icon = AddUIComponent <UISprite>();
            icon.relativePosition = new Vector3(2, 2);
            icon.spriteName       = "MoneyThumb";
            icon.name             = "Icon";
            icon.size             = new Vector2(40, 40);
            icon.eventClicked    += openSelectorPanel;
            icon.BringToFront();

            if (settings.budgetSliderNameList.Count > 0)
            {
                setSliderPanel(settings.budgetSliderNameList.ToArray());

                // required on load
                while (mode != settings.mode)
                {
                    toggleMode();
                }
            }

            this.settings = settings; // ensures that settings are saved across sessions even if some expansions and their budgets may be disabled
        }