21 lines
679 B
C#
21 lines
679 B
C#
using System.Text.Json;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace SpaceGame.Api.Universe.Bootstrap;
|
|
|
|
public sealed class SystemTemplateLoader(IOptions<StaticDataOptions> staticDataOptions)
|
|
{
|
|
private readonly JsonSerializerOptions _jsonOptions = new()
|
|
{
|
|
PropertyNameCaseInsensitive = true,
|
|
};
|
|
|
|
internal List<SolarSystemDefinition> Load()
|
|
{
|
|
var path = Path.Combine(staticDataOptions.Value.DataRoot, "systems.json");
|
|
var json = File.ReadAllText(path);
|
|
return JsonSerializer.Deserialize<List<SolarSystemDefinition>>(json, _jsonOptions)
|
|
?? throw new InvalidOperationException("Unable to read systems.json.");
|
|
}
|
|
}
|