Refactor processing running and merge apr2025 generator into

BaseRandomizer
This commit is contained in:
2026-01-24 18:47:33 -06:00
parent e5fd52376e
commit 96cebd2289
12 changed files with 189 additions and 290 deletions

View File

@@ -3,12 +3,25 @@
using System;
using System.Linq;
internal class RandomizerNameAttribute : Attribute {
public RandomizerNameAttribute(string name) {
[AttributeUsage(AttributeTargets.Field)]
internal class GeneratorSettingsAttribute : Attribute {
public GeneratorSettingsAttribute(string name, string prefix, params string[] args) {
this.Name = name;
this.Prefix = prefix;
this.Args = args;
}
public GeneratorSettingsAttribute(string name, string prefix, bool requireFlips, params string[] args) {
this.Name = name;
this.Prefix = prefix;
this.Args = args;
this.RequireFlips = requireFlips;
}
public string Name { get; }
public string Prefix { get; }
public string[] Args { get; }
public bool RequireFlips { get; } = false;
}
internal abstract class RandomizerSpecificAttribute : Attribute {

View File

@@ -72,17 +72,17 @@
}
}
public string GetRandomizerName(RandomizerInstance randomizer)
internal GeneratorSettingsAttribute GetGeneratorSettings(RandomizerInstance randomizer)
{
var fi = typeof(RandomizerInstance).GetField(randomizer.ToString(), BindingFlags.Static | BindingFlags.Public);
var randomizerKey = fi?.GetCustomAttribute<RandomizerNameAttribute>()?.Name;
var settings = fi?.GetCustomAttribute<GeneratorSettingsAttribute>();
if (randomizerKey == null) {
throw new InvalidSettingsException("Invalid randomizer: {0}", randomizerKey);
if (settings == null) {
throw new InvalidSettingsException("Invalid randomizer: {0}", randomizer);
}
return randomizerKey;
return settings;
}
}