Deukhoofd 810cdbb15a
All checks were successful
continuous-integration/drone/push Build is passing
Move data and data loading to plugin libraries.
2025-05-16 13:01:23 +02:00

22 lines
737 B
C#

using System.Text.Json;
using PkmnLib.Static;
using PkmnLib.Static.Libraries;
namespace PkmnLib.Dynamic.Libraries.DataLoaders;
public static class GrowthRateDataLoader
{
public static GrowthRateLibrary LoadGrowthRates(Stream stream, Action<List<IGrowthRate>>? action = null)
{
var objects = JsonSerializer.Deserialize<Dictionary<string, uint[]>>(stream, JsonOptions.DefaultOptions)!;
var growthRates = objects.Select(x => new LookupGrowthRate(x.Key, x.Value)).Cast<IGrowthRate>().ToList();
action?.Invoke(growthRates);
var library = new GrowthRateLibrary();
foreach (var growthRate in growthRates)
{
library.Add(growthRate);
}
return library;
}
}