private MyObjectBuilder_AsteroidGenerator GetConfig() { if (MyAPIGateway.Utilities.FileExistsInWorldStorage(STORAGE_FILE, typeof(ProceduralGenerator))) { try { using (var reader = MyAPIGateway.Utilities.ReadFileInWorldStorage(STORAGE_FILE, typeof(ProceduralGenerator))) { MyObjectBuilder_AsteroidGenerator saveFile = MyAPIGateway.Utilities.SerializeFromXML <MyObjectBuilder_AsteroidGenerator>(reader.ReadToEnd()); return(saveFile); } } catch (Exception e) { PluginLog.Log("Couldnt load Starsystem save file.", LogLevel.ERROR); PluginLog.Log(e.Message + "\n" + e.StackTrace, LogLevel.ERROR); MyAPIGateway.Utilities.DeleteFileInWorldStorage(STORAGE_FILE, typeof(ProceduralGenerator)); return(null); } } else { return(new MyObjectBuilder_AsteroidGenerator()); } }
public override void LoadData() { PluginLog.Log("Loading procedural generator data"); Static = this; m_seed = MySession.Static.Settings.ProceduralSeed; planetModule = new ProceduralPlanetModule(m_seed); if (!SettingsSession.Static.Settings.Enable || !Sync.IsServer || MySession.Static.Settings.WorldSizeKm != 0) { return; } MyObjectBuilder_AsteroidGenerator b = GetConfig(); m_existingObjectSeeds = b.ExistingObjectsSeeds; proceduralDensity = b.ProceduralDensity == 0 ? MySession.Static.Settings.ProceduralDensity : b.ProceduralDensity; if (SettingsSession.Static.Settings.GeneratorSettings.AsteroidGenerator == AsteroidGenerator.PLUGIN) { MySession.Static.Settings.ProceduralDensity = 0; MySession.Static.OnSavingCheckpoint += delegate { if (Enabled) { MySession.Static.Settings.ProceduralDensity = proceduralDensity; } }; } else { if (MySession.Static.Settings.ProceduralDensity != 0 && MySession.Static.Settings.ProceduralDensity != proceduralDensity) { proceduralDensity = MySession.Static.Settings.ProceduralDensity; } else { MySession.Static.Settings.ProceduralDensity = proceduralDensity; } } //if (MySession.Static.Settings.ProceduralDensity != 0) return; asteroidModule = new ProceduralAsteroidsRingModule(m_seed); }
private void SaveConfig() { MyObjectBuilder_AsteroidGenerator conf = new MyObjectBuilder_AsteroidGenerator(); conf.ExistingObjectsSeeds = m_existingObjectSeeds; conf.ProceduralDensity = proceduralDensity; MyAPIGateway.Utilities.DeleteFileInWorldStorage(STORAGE_FILE, typeof(ProceduralGenerator)); string xml = MyAPIGateway.Utilities.SerializeToXML(conf); using (var writer = MyAPIGateway.Utilities.WriteFileInWorldStorage(STORAGE_FILE, typeof(ProceduralGenerator))) { writer.Write(xml); writer.Close(); } }