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