2022-05-10 19:43:57 +00:00
|
|
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using osu.Framework.Bindables;
|
2022-08-10 20:09:11 +00:00
|
|
|
using osu.Framework.Localisation;
|
2022-05-10 19:43:57 +00:00
|
|
|
using osu.Game.Beatmaps;
|
|
|
|
using osu.Game.Configuration;
|
|
|
|
using osu.Game.Rulesets;
|
|
|
|
using osu.Game.Rulesets.Difficulty;
|
|
|
|
using osu.Game.Rulesets.Mods;
|
|
|
|
using osu.Game.Rulesets.UI;
|
|
|
|
|
|
|
|
namespace osu.Game.Tests.Mods
|
|
|
|
{
|
|
|
|
public class TestCustomisableModRuleset : Ruleset
|
|
|
|
{
|
|
|
|
public static RulesetInfo CreateTestRulesetInfo() => new TestCustomisableModRuleset().RulesetInfo;
|
|
|
|
|
|
|
|
public override IEnumerable<Mod> GetModsFor(ModType type)
|
|
|
|
{
|
|
|
|
if (type == ModType.Conversion)
|
|
|
|
{
|
|
|
|
return new Mod[]
|
|
|
|
{
|
|
|
|
new TestModCustomisable1(),
|
|
|
|
new TestModCustomisable2()
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
return Array.Empty<Mod>();
|
|
|
|
}
|
|
|
|
|
2022-07-10 16:07:17 +00:00
|
|
|
public override DrawableRuleset CreateDrawableRulesetWith(IBeatmap beatmap, IReadOnlyList<Mod>? mods = null) => throw new NotImplementedException();
|
2022-05-10 19:43:57 +00:00
|
|
|
|
|
|
|
public override IBeatmapConverter CreateBeatmapConverter(IBeatmap beatmap) => throw new NotImplementedException();
|
|
|
|
|
|
|
|
public override DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap) => throw new NotImplementedException();
|
|
|
|
|
|
|
|
public override string Description { get; } = "test";
|
|
|
|
public override string ShortName { get; } = "tst";
|
|
|
|
|
|
|
|
public class TestModCustomisable1 : TestModCustomisable
|
|
|
|
{
|
|
|
|
public override string Name => "Customisable Mod 1";
|
|
|
|
|
|
|
|
public override string Acronym => "CM1";
|
|
|
|
}
|
|
|
|
|
|
|
|
public class TestModCustomisable2 : TestModCustomisable
|
|
|
|
{
|
|
|
|
public override string Name => "Customisable Mod 2";
|
|
|
|
|
|
|
|
public override string Acronym => "CM2";
|
|
|
|
|
|
|
|
public override bool RequiresConfiguration => true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract class TestModCustomisable : Mod, IApplicableMod
|
|
|
|
{
|
|
|
|
public override double ScoreMultiplier => 1.0;
|
|
|
|
|
2022-08-10 20:09:11 +00:00
|
|
|
public override LocalisableString Description => "This is a customisable test mod.";
|
2022-05-10 19:43:57 +00:00
|
|
|
|
|
|
|
public override ModType Type => ModType.Conversion;
|
|
|
|
|
|
|
|
[SettingSource("Sample float", "Change something for a mod")]
|
|
|
|
public BindableFloat SliderBindable { get; } = new BindableFloat
|
|
|
|
{
|
|
|
|
MinValue = 0,
|
|
|
|
MaxValue = 10,
|
|
|
|
Default = 5,
|
|
|
|
Value = 7
|
|
|
|
};
|
|
|
|
|
|
|
|
[SettingSource("Sample bool", "Clicking this changes a setting")]
|
|
|
|
public BindableBool TickBindable { get; } = new BindableBool();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|