Example #1
0
 public void LoadSettings()
 {
     if (FileUtils.FileExistsInGlobalStorage(FILENAME))
     {
         try
         {
             using (var reader = FileUtils.ReadFileInGlobalStorage(FILENAME))
             {
                 MyObjectBuilder_PluginSettings saveFile = FileUtils.SerializeFromXml <MyObjectBuilder_PluginSettings>(reader.ReadToEnd());
                 if (saveFile != null)
                 {
                     Settings = saveFile;
                 }
             }
         }
         catch (Exception e)
         {
             MyLog.Default.Error("Couldnt load Plugin config file.");
             MyLog.Default.Error(e.Message + "\n" + e.StackTrace);
             FileUtils.DeleteFileInGlobalStorage(FILENAME);
             Settings = new MyObjectBuilder_PluginSettings();
         }
     }
     else
     {
         Settings = new MyObjectBuilder_PluginSettings();
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Moon");
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Titan");
     }
     Settings.Verify();
 }
        /// <summary>
        /// Loads the savefile of the plugin settings of the world and stores it
        /// int the Settings member variable
        /// </summary>
        public override void LoadData()
        {
            Static = this;
            if (FileUtils.FileExistsInWorldStorage(FILE_NAME, typeof(SettingsSession)))
            {
                Settings = FileUtils.ReadXmlFileFromWorld <MyObjectBuilder_PluginSettings>(FILE_NAME, typeof(SettingsSession));
            }
            else
            {
                if (MySettings.Static == null)
                {
                    var s = new MySettings();
                    s.LoadSettings();
                }
                if (MySettings.Static.SessionSettings != null)
                {
                    Settings = MySettings.Static.SessionSettings;
                }
                else
                {
                    Settings = MySettings.Static.Settings;
                }

                MySettings.Static.SessionSettings = null;
            }
        }
        /// <summary>
        /// Loads values from the folder of the world, which is currently edited. Used for editing world settings.
        /// </summary>
        private void LoadValues()
        {
            var path = Path.Combine(MyFileSystem.SavesPath, Checkpoint.SessionName.Replace(":", "-"));

            if (FileUtils.FileExistsInPath(path, SettingsSession.FILE_NAME, typeof(PluginWorldSettings)))
            {
                PlSettings = FileUtils.ReadXmlFileFromPath <MyObjectBuilder_PluginSettings>(path, SettingsSession.FILE_NAME, typeof(PluginWorldSettings));
            }
            else
            {
                PlSettings = new MyObjectBuilder_PluginSettings();
            }
            m_enablePlugin.IsChecked = PlSettings.Enable;
        }
Example #4
0
        public void SetSettings(MyObjectBuilder_PluginSettings settings, bool useGlobal)
        {
            m_useGlobalCheck.IsChecked = useGlobal;

            if (useGlobal || settings == null)
            {
                return;
            }

            m_useSemiRandomGenerationCheck.IsChecked = settings.GeneratorSettings.SemiRandomizedGeneration;

            m_useVanillaPlanetsCheck.IsChecked = settings.GeneratorSettings.UseVanillaPlanets;

            m_planetsOnlyOnceCheck.IsChecked = settings.GeneratorSettings.PlanetsOnlyOnce;

            m_moonsOnlyOnceCheck.IsChecked = settings.GeneratorSettings.MoonsOnlyOnce;

            m_planetGpsCheck.IsChecked = settings.GeneratorSettings.PlanetSettings.ShowPlanetGPS;

            m_moonGpsCheck.IsChecked = settings.GeneratorSettings.PlanetSettings.ShowMoonGPS;

            m_beltGpsCheck.IsChecked = settings.GeneratorSettings.BeltSettings.ShowBeltGPS;

            m_ringGpsCheck.IsChecked = settings.GeneratorSettings.PlanetSettings.RingSettings.ShowRingGPS;

            m_asteroidGeneratorCombo.SelectItemByKey((int)settings.GeneratorSettings.AsteroidGenerator);

            m_asteroidDensitySlider.Value = settings.GeneratorSettings.AsteroidDensity;

            m_objAmountSlider.Value = (settings.GeneratorSettings.MinObjectsInSystem + settings.GeneratorSettings.MaxObjectsInSystem) / 2;

            m_orbDistanceSlider.Value = (settings.GeneratorSettings.MinOrbitDistance / 1000 + settings.GeneratorSettings.MaxOrbitDistance / 1000) / 2;

            m_sizeMultiplierSlider.Value = settings.GeneratorSettings.PlanetSettings.SizeMultiplier;

            m_sizeCapSlider.Value = (float)settings.GeneratorSettings.PlanetSettings.PlanetSizeCap / 1000;

            m_moonProbSlider.Value = settings.GeneratorSettings.PlanetSettings.MoonProbability;

            m_ringWidthSlider.Value = (settings.GeneratorSettings.PlanetSettings.RingSettings.MinPlanetRingWidth + settings.GeneratorSettings.PlanetSettings.RingSettings.MaxPlanetRingWidth) / 2;

            m_ringProbSlider.Value = settings.GeneratorSettings.PlanetSettings.RingSettings.PlanetRingProbability;

            m_beltHeightSlider.Value = (settings.GeneratorSettings.BeltSettings.MinBeltHeight + settings.GeneratorSettings.BeltSettings.MaxBeltHeight) / 2;

            m_worldSizeSlider.Value = settings.GeneratorSettings.WorldSize / 1000;
        }
Example #5
0
        /// <summary>
        /// Gets the current set settings from the gui elements and sets them in
        /// settings
        /// </summary>
        /// <param name="settings">The plugin settings to set</param>
        /// <returns>If global config should be used</returns>
        public bool GetSettings(ref MyObjectBuilder_PluginSettings settings)
        {
            if (settings == null)
            {
                settings = new MyObjectBuilder_PluginSettings();
            }

            settings.GeneratorSettings.SemiRandomizedGeneration = m_useSemiRandomGenerationCheck.IsChecked;
            settings.GeneratorSettings.UseVanillaPlanets        = m_useVanillaPlanetsCheck.IsChecked;
            settings.GeneratorSettings.PlanetsOnlyOnce          = m_planetsOnlyOnceCheck.IsChecked;
            settings.GeneratorSettings.MoonsOnlyOnce            = m_moonsOnlyOnceCheck.IsChecked;

            settings.GeneratorSettings.MinObjectsInSystem = (int)m_objAmountSlider.Value;
            settings.GeneratorSettings.MaxObjectsInSystem = (int)m_objAmountSlider.Value;

            settings.GeneratorSettings.MinOrbitDistance = (int)m_orbDistanceSlider.Value * 1000 / 10;
            settings.GeneratorSettings.MaxOrbitDistance = (int)(m_orbDistanceSlider.Value * 1000 * 2 - settings.GeneratorSettings.MinOrbitDistance);

            settings.GeneratorSettings.AsteroidGenerator = (AsteroidGenerator)m_asteroidGeneratorCombo.GetSelectedKey();
            settings.GeneratorSettings.AsteroidDensity   = m_asteroidDensitySlider.Value;

            settings.GeneratorSettings.PlanetSettings.SizeMultiplier  = (int)m_sizeMultiplierSlider.Value;
            settings.GeneratorSettings.PlanetSettings.PlanetSizeCap   = (int)m_sizeCapSlider.Value * 1000;
            settings.GeneratorSettings.PlanetSettings.MoonProbability = m_moonProbSlider.Value;
            settings.GeneratorSettings.PlanetSettings.ShowPlanetGPS   = m_planetGpsCheck.IsChecked;
            settings.GeneratorSettings.PlanetSettings.ShowMoonGPS     = m_moonGpsCheck.IsChecked;

            settings.GeneratorSettings.PlanetSettings.RingSettings.MinPlanetRingWidth    = (int)m_ringWidthSlider.Value / 10;
            settings.GeneratorSettings.PlanetSettings.RingSettings.MaxPlanetRingWidth    = (int)m_ringWidthSlider.Value * 2 - settings.GeneratorSettings.PlanetSettings.RingSettings.MinPlanetRingWidth;
            settings.GeneratorSettings.PlanetSettings.RingSettings.PlanetRingProbability = m_ringProbSlider.Value;
            settings.GeneratorSettings.PlanetSettings.RingSettings.ShowRingGPS           = m_ringGpsCheck.IsChecked;

            settings.GeneratorSettings.BeltSettings.MinBeltHeight   = (int)m_beltHeightSlider.Value / 10;
            settings.GeneratorSettings.BeltSettings.MaxBeltHeight   = (int)m_beltHeightSlider.Value * 2 - settings.GeneratorSettings.BeltSettings.MinBeltHeight;
            settings.GeneratorSettings.BeltSettings.BeltProbability = m_beltProbSlider.Value;
            settings.GeneratorSettings.BeltSettings.ShowBeltGPS     = m_beltGpsCheck.IsChecked;

            settings.GeneratorSettings.WorldSize = (long)m_worldSizeSlider.Value * 1000;

            return(m_useGlobalCheck.IsChecked);
        }
Example #6
0
 /// <summary>
 /// Loads the global configuration file if it exists, otherwise creates a new one.
 /// </summary>
 public void LoadSettings()
 {
     PluginLog.Log("Loading the global config file");
     if (FileUtils.FileExistsInGlobalStorage(FILENAME))
     {
         try
         {
             using (var reader = FileUtils.ReadFileInGlobalStorage(FILENAME))
             {
                 MyObjectBuilder_PluginSettings saveFile = FileUtils.SerializeFromXml <MyObjectBuilder_PluginSettings>(reader.ReadToEnd());
                 if (saveFile != null)
                 {
                     Settings = saveFile;
                 }
             }
         }
         catch (Exception e)
         {
             PluginLog.Log("Couldnt load Plugin config file.", LogLevel.ERROR);
             PluginLog.Log(e.Message + "\n" + e.StackTrace, LogLevel.ERROR);
             FileUtils.DeleteFileInGlobalStorage(FILENAME);
             Settings = new MyObjectBuilder_PluginSettings();
         }
     }
     else
     {
         PluginLog.Log("Config does not exist, creating default one");
         Settings = new MyObjectBuilder_PluginSettings();
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Moon");
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Titan");
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Europa");
         Settings.GeneratorSettings.PlanetSettings.Moons.Add("Triton");
     }
     Settings.Verify();
     PluginLog.Log("Config loaded");
 }
        /// <summary>
        /// Builds the controls for the gui screen by first building the base
        /// controls and then adding the checkbox to enable the plugin and a button to edit
        /// its settings for the world, also initializes an instance of plugin settings to edit.
        /// Adds a new delegate to the create world button, to transfere the set plugin settings
        /// to the plugins settings session component.
        /// </summary>
        protected override void BuildControls()
        {
            base.BuildControls();

            Vector2 vector  = -m_size.Value / 2f + new Vector2(m_isNewGame ? (MARGIN_LEFT_LIST + MyGuiConstants.LISTBOX_WIDTH + MARGIN_LEFT_INFO) : MARGIN_LEFT_LIST, m_isNewGame ? (MARGIN_TOP + 0.015f) : (MARGIN_TOP - 0.105f));
            Vector2 value   = new Vector2(0f, 0.052f);
            Vector2 vector2 = m_size.Value / 2f - vector;

            vector2.X -= MARGIN_RIGHT + 0.005f;
            vector2.Y -= MARGIN_BOTTOM;
            Vector2 vector3 = vector2 * (m_isNewGame ? 0.339f : 0.329f);
            Vector2 vector4 = vector2 - vector3;

            m_enablePluginLabel = new MyGuiControlLabel(null, null, "Enable SEWorldGenPlugin");

            m_enablePlugin = new MyGuiControlCheckbox();
            m_enablePlugin.SetToolTip("Enable the SEWorldGenPlugin for this world");
            m_enablePlugin.IsCheckedChanged = (Action <MyGuiControlCheckbox>) Delegate.Combine(m_enablePlugin.IsCheckedChanged, (Action <MyGuiControlCheckbox>) delegate(MyGuiControlCheckbox s)
            {
                if (PlSettings != null)
                {
                    PlSettings.Enable = s.IsChecked;
                }
            });

            m_enablePlugin.IsChecked = MySettings.Static.Settings.Enable;

            m_pluginSettingsButton = new MyGuiControlButton(null, MyGuiControlButtonStyleEnum.Small, null, null, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, null, new StringBuilder("Plugin settings"), 0.8f, MyGuiDrawAlignEnum.HORISONTAL_CENTER_AND_VERTICAL_CENTER, MyGuiControlHighlightType.WHEN_ACTIVE, OnSettingsClick);
            Controls.Add(m_enablePluginLabel);
            Controls.Add(m_enablePlugin);
            Controls.Add(m_pluginSettingsButton);

            m_enablePluginLabel.Position       = vector + value * 5;
            m_enablePluginLabel.PositionY     += MyGuiConstants.BACK_BUTTON_SIZE.Y * 2;
            m_enablePlugin.Position            = GetControlPosition();
            m_enablePlugin.PositionY           = m_enablePluginLabel.PositionY;
            m_enablePlugin.OriginAlign         = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
            m_pluginSettingsButton.Position    = m_enablePlugin.Position;
            m_pluginSettingsButton.PositionX  += m_enablePlugin.Size.X + 0.009f;
            m_pluginSettingsButton.OriginAlign = MyGuiDrawAlignEnum.HORISONTAL_LEFT_AND_VERTICAL_CENTER;
            foreach (var c in Controls)
            {
                if (c is MyGuiControlButton)
                {
                    MyGuiControlButton b = (MyGuiControlButton)c;
                    if (b.Text == MyTexts.GetString(MyCommonTexts.Start) || b.Text == MyTexts.GetString(MyCommonTexts.Ok))
                    {
                        if (m_isNewGame)
                        {
                            b.ButtonClicked += delegate
                            {
                                if (!UseGlobal)
                                {
                                    MySettings.Static.SessionSettings = PlSettings;
                                    PluginLog.Log("Settings: " + PlSettings.ToString());
                                }
                                else
                                {
                                    MySettings.Static.SessionSettings        = new MyObjectBuilder_PluginSettings();
                                    MySettings.Static.SessionSettings.Enable = m_enablePlugin.IsChecked;
                                }
                            };
                        }
                        else
                        {
                            b.ButtonClicked += delegate
                            {
                                var name = Checkpoint.SessionName;
                                var path = Path.Combine(MyFileSystem.SavesPath, name.Replace(":", "-"));
                                FileUtils.WriteXmlFileToPath(PlSettings, path, SettingsSession.FILE_NAME, typeof(PluginWorldSettings));
                            };
                        }
                    }
                }
            }

            if (m_isNewGame)
            {
                PlSettings = MySettings.Static.Settings.copy();
            }
            else
            {
                LoadValues();
            }
        }
Example #8
0
 public MySettings()
 {
     Static   = this;
     Settings = new MyObjectBuilder_PluginSettings();
 }
 /// <summary>
 /// Unloads the used data of this session component.
 /// </summary>
 protected override void UnloadData()
 {
     FileUtils.WriteXmlFileToWorld(Settings, FILE_NAME, typeof(SettingsSession));
     Settings = null;
 }