// Readers List <double[]> ReadCurve(FloatCurve curve) { ConfigNode config = new ConfigNode(); List <double[]> list = new List <double[]>(); NumericCollectionParser <double> value = new NumericCollectionParser <double>(); curve.Save(config); foreach (string k in config.GetValues("key")) { value.SetFromString(k); list.Add(value.Value.ToArray()); } return(list); }
public void ModuleManagerPostLoad() { NumericCollectionParser <double> flareSettings = new NumericCollectionParser <double>(); NumericCollectionParser <double> spikesSettings = new NumericCollectionParser <double>(); double Rescale = 1; double customRescale = 1; if (!double.TryParse(GameDatabase.Instance.GetConfigNode("Sigma/Dimensions/Settings/SigmaDimensions")?.GetValue("Rescale"), out Rescale)) { Rescale = 1; } foreach (ConfigNode node in GameDatabase.Instance.GetConfigNodes("Scatterer_sunflare")) { foreach (ConfigNode star in node.GetNodes()) { // Load customRescale if (!double.TryParse(star.GetValue("customRescale"), out customRescale)) { customRescale = 1; } // Load Scatterer Settings double sunGlareFadeDistance = 0; double.TryParse(star.GetValue("sunGlareFadeDistance"), out sunGlareFadeDistance); if (star.HasValue("flareSettings")) { flareSettings.SetFromString(star.GetValue("flareSettings").Replace(",", " ")); } if (star.HasValue("spikesSettings")) { spikesSettings.SetFromString(star.GetValue("spikesSettings").Replace(",", " ")); } // Rescale Scatterer Settings if (customRescale != 1) { sunGlareFadeDistance *= customRescale; if (flareSettings?.Value?.Count > 2) { flareSettings.Value[2] = flareSettings.Value[2] / customRescale; } if (spikesSettings?.Value?.Count > 2) { spikesSettings.Value[2] = spikesSettings.Value[2] / customRescale; } } else { sunGlareFadeDistance *= Rescale; if (flareSettings?.Value?.Count > 2) { flareSettings.Value[2] = flareSettings.Value[2] / Rescale; } if (spikesSettings?.Value?.Count > 2) { spikesSettings.Value[2] = spikesSettings.Value[2] / Rescale; } } // Save Rescaled Scatterer Settings if (flareSettings?.Value?.Count > 2) { star.RemoveValues("flareSettings"); star.AddValue("flareSettings", string.Join(",", flareSettings.Value.Select(p => p.ToString()).ToArray())); } if (spikesSettings?.Value?.Count > 2) { star.RemoveValues("spikesSettings"); star.AddValue("spikesSettings", string.Join(",", spikesSettings.Value.Select(p => p.ToString()).ToArray())); } if (sunGlareFadeDistance != 0) { star.RemoveValues("sunGlareFadeDistance"); star.AddValue("sunGlareFadeDistance", sunGlareFadeDistance); } } } DestroyImmediate(this); }
// Readers List<double[]> ReadCurve(FloatCurve curve) { ConfigNode config = new ConfigNode(); List<double[]> list = new List<double[]>(); NumericCollectionParser<double> value = new NumericCollectionParser<double>(); curve.Save(config); foreach (string k in config.GetValues("key")) { value.SetFromString(k); list.Add(value.value.ToArray()); } return list; }