Fix EntryRequirement serialization
This commit is contained in:
@@ -6,5 +6,7 @@ ALttPRandomizer/[Bb]in
|
||||
*/__pycache__
|
||||
*/.github
|
||||
*/_vendor
|
||||
ALttPDoorRandomizer/DR_*
|
||||
ALttPDoorRandomizer/data/base2current.json
|
||||
*/DR_*
|
||||
*/ER_*
|
||||
*/OR_*
|
||||
*/data/base2current.json
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
public static class JsonOptions {
|
||||
public static JsonSerializerOptions Default = new JsonSerializerOptions() {
|
||||
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
|
||||
NumberHandling = JsonNumberHandling.Strict,
|
||||
}.WithStringEnum();
|
||||
|
||||
public static JsonSerializerOptions WithStringEnum(this JsonSerializerOptions options) {
|
||||
options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower));
|
||||
options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.SnakeCaseLower, false));
|
||||
return options;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
public EntryRequirement CrystalsGanon { get; set; } = EntryRequirement.Crystals7;
|
||||
|
||||
[CommonValue("crystals_gt")]
|
||||
[JsonPropertyName("crystals_gt")]
|
||||
public EntryRequirement CrystalsGT { get; set; } = EntryRequirement.Crystals7;
|
||||
|
||||
public EntranceShuffle EntranceShuffle { get; set; } = EntranceShuffle.Vanilla;
|
||||
@@ -73,14 +74,14 @@
|
||||
}
|
||||
|
||||
public enum EntryRequirement {
|
||||
[JsonStringEnumMemberName("7")] [CommonValue("7")] Crystals7,
|
||||
[JsonStringEnumMemberName("6")] [CommonValue("6")] Crystals6,
|
||||
[JsonStringEnumMemberName("5")] [CommonValue("5")] Crystals5,
|
||||
[JsonStringEnumMemberName("4")] [CommonValue("4")] Crystals4,
|
||||
[JsonStringEnumMemberName("3")] [CommonValue("3")] Crystals3,
|
||||
[JsonStringEnumMemberName("2")] [CommonValue("2")] Crystals2,
|
||||
[JsonStringEnumMemberName("1")] [CommonValue("1")] Crystals1,
|
||||
[JsonStringEnumMemberName("0")] [CommonValue("0")] Crystals0,
|
||||
[JsonStringEnumMemberName("0")] [CommonValue("0")] Crystals0 = 0,
|
||||
[JsonStringEnumMemberName("1")] [CommonValue("1")] Crystals1 = 1,
|
||||
[JsonStringEnumMemberName("2")] [CommonValue("2")] Crystals2 = 2,
|
||||
[JsonStringEnumMemberName("3")] [CommonValue("3")] Crystals3 = 3,
|
||||
[JsonStringEnumMemberName("4")] [CommonValue("4")] Crystals4 = 4,
|
||||
[JsonStringEnumMemberName("5")] [CommonValue("5")] Crystals5 = 5,
|
||||
[JsonStringEnumMemberName("6")] [CommonValue("6")] Crystals6 = 6,
|
||||
[JsonStringEnumMemberName("7")] [CommonValue("7")] Crystals7 = 7,
|
||||
Random,
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,9 @@
|
||||
|
||||
builder.Services.Configure<ServiceOptions>(builder.Configuration.GetSection("ALttPRandomizer"));
|
||||
|
||||
builder.Services.AddLogging(lb => lb.AddConsole());
|
||||
builder.Services.AddLogging(logger => {
|
||||
logger.AddConsole();
|
||||
});
|
||||
|
||||
var provider = builder.Services.BuildServiceProvider();
|
||||
var settings = provider.GetRequiredService<IOptionsMonitor<ServiceOptions>>().CurrentValue!;
|
||||
|
||||
@@ -59,6 +59,9 @@
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(settings.Weapons));
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(settings.Goal));
|
||||
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.CrystalsGanon), settings.CrystalsGanon));
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.CrystalsGT), settings.CrystalsGT));
|
||||
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.SmallKeys), settings.SmallKeys));
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.BigKeys), settings.BigKeys));
|
||||
this.AddArgs(args, this.SettingsProcessor.GetSettingPair(nameof(SeedSettings.Maps), settings.Maps));
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
using ALttPRandomizer.Model;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace ALttPRandomizer.Service {
|
||||
public class RandomizeService {
|
||||
public RandomizeService(IdGenerator idGenerator, Randomizer randomizer) {
|
||||
public RandomizeService(IdGenerator idGenerator, Randomizer randomizer, ILogger<RandomizeService> logger) {
|
||||
this.IdGenerator = idGenerator;
|
||||
this.Randomizer = randomizer;
|
||||
this.Logger = logger;
|
||||
}
|
||||
|
||||
private ILogger<RandomizeService> Logger { get; }
|
||||
|
||||
private IdGenerator IdGenerator { get; }
|
||||
private Randomizer Randomizer { get; }
|
||||
|
||||
public string RandomizeSeed(SeedSettings settings) {
|
||||
var id = this.IdGenerator.GenerateId();
|
||||
this.Logger.LogInformation("Generating seed {seedId} with settings {@settings}", id, settings);
|
||||
this.Randomizer.Randomize(id, settings);
|
||||
return id;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user