Remove subclassing of RulesetInfo

This commit is contained in:
Dean Herbert
2021-11-22 16:39:17 +09:00
parent 4dd86f8619
commit b9923e5396
5 changed files with 52 additions and 65 deletions

View File

@ -38,7 +38,7 @@ namespace osu.Game.Beatmaps
CircleSize = 0,
OverallDifficulty = 0,
},
Ruleset = new DummyRulesetInfo()
Ruleset = new DummyRuleset().RulesetInfo
}, audio)
{
this.textures = textures;
@ -54,42 +54,37 @@ namespace osu.Game.Beatmaps
public override Stream GetStream(string storagePath) => null;
private class DummyRulesetInfo : RulesetInfo
private class DummyRuleset : Ruleset
{
public override Ruleset CreateInstance() => new DummyRuleset();
public override IEnumerable<Mod> GetModsFor(ModType type) => Array.Empty<Mod>();
private class DummyRuleset : Ruleset
public override DrawableRuleset CreateDrawableRulesetWith(IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
{
public override IEnumerable<Mod> GetModsFor(ModType type) => Array.Empty<Mod>();
throw new NotImplementedException();
}
public override DrawableRuleset CreateDrawableRulesetWith(IBeatmap beatmap, IReadOnlyList<Mod> mods = null)
public override IBeatmapConverter CreateBeatmapConverter(IBeatmap beatmap) => new DummyBeatmapConverter { Beatmap = beatmap };
public override DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap) => null;
public override string Description => "dummy";
public override string ShortName => "dummy";
private class DummyBeatmapConverter : IBeatmapConverter
{
public event Action<HitObject, IEnumerable<HitObject>> ObjectConverted;
public IBeatmap Beatmap { get; set; }
public bool CanConvert() => true;
public IBeatmap Convert(CancellationToken cancellationToken = default)
{
throw new NotImplementedException();
}
foreach (var obj in Beatmap.HitObjects)
ObjectConverted?.Invoke(obj, obj.Yield());
public override IBeatmapConverter CreateBeatmapConverter(IBeatmap beatmap) => new DummyBeatmapConverter { Beatmap = beatmap };
public override DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap) => null;
public override string Description => "dummy";
public override string ShortName => "dummy";
private class DummyBeatmapConverter : IBeatmapConverter
{
public event Action<HitObject, IEnumerable<HitObject>> ObjectConverted;
public IBeatmap Beatmap { get; set; }
public bool CanConvert() => true;
public IBeatmap Convert(CancellationToken cancellationToken = default)
{
foreach (var obj in Beatmap.HitObjects)
ObjectConverted?.Invoke(obj, obj.Yield());
return Beatmap;
}
return Beatmap;
}
}
}