mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 06:43:21 +08:00
Merge pull request #28806 from bdach/remove-irrelevant-stuff-from-setup
Remove setup screen controls that do nothing useful
This commit is contained in:
commit
b0e2462400
@ -28,6 +28,7 @@ using osu.Game.Rulesets.Scoring;
|
|||||||
using osu.Game.Rulesets.Scoring.Legacy;
|
using osu.Game.Rulesets.Scoring.Legacy;
|
||||||
using osu.Game.Rulesets.UI;
|
using osu.Game.Rulesets.UI;
|
||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
|
using osu.Game.Screens.Edit.Setup;
|
||||||
using osu.Game.Screens.Ranking.Statistics;
|
using osu.Game.Screens.Ranking.Statistics;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
|
|
||||||
@ -222,6 +223,12 @@ namespace osu.Game.Rulesets.Catch
|
|||||||
|
|
||||||
public override HitObjectComposer CreateHitObjectComposer() => new CatchHitObjectComposer(this);
|
public override HitObjectComposer CreateHitObjectComposer() => new CatchHitObjectComposer(this);
|
||||||
|
|
||||||
|
public override IEnumerable<SetupSection> CreateEditorSetupSections() =>
|
||||||
|
[
|
||||||
|
new DifficultySection(),
|
||||||
|
new ColoursSection(),
|
||||||
|
];
|
||||||
|
|
||||||
public override IBeatmapVerifier CreateBeatmapVerifier() => new CatchBeatmapVerifier();
|
public override IBeatmapVerifier CreateBeatmapVerifier() => new CatchBeatmapVerifier();
|
||||||
|
|
||||||
public override StatisticItem[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap)
|
public override StatisticItem[] CreateStatisticsForScore(ScoreInfo score, IBeatmap playableBeatmap)
|
||||||
|
@ -20,6 +20,7 @@ namespace osu.Game.Rulesets.Mania.Edit.Setup
|
|||||||
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
||||||
|
|
||||||
private LabelledSliderBar<float> keyCountSlider { get; set; } = null!;
|
private LabelledSliderBar<float> keyCountSlider { get; set; } = null!;
|
||||||
|
private LabelledSwitchButton specialStyle { get; set; } = null!;
|
||||||
private LabelledSliderBar<float> healthDrainSlider { get; set; } = null!;
|
private LabelledSliderBar<float> healthDrainSlider { get; set; } = null!;
|
||||||
private LabelledSliderBar<float> overallDifficultySlider { get; set; } = null!;
|
private LabelledSliderBar<float> overallDifficultySlider { get; set; } = null!;
|
||||||
private LabelledSliderBar<double> baseVelocitySlider { get; set; } = null!;
|
private LabelledSliderBar<double> baseVelocitySlider { get; set; } = null!;
|
||||||
@ -49,6 +50,13 @@ namespace osu.Game.Rulesets.Mania.Edit.Setup
|
|||||||
Precision = 1,
|
Precision = 1,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
specialStyle = new LabelledSwitchButton
|
||||||
|
{
|
||||||
|
Label = "Use special (N+1) style",
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = "Changes one column to act as a classic \"scratch\" or \"special\" column, which can be moved around by the user's skin (to the left/right/centre). Generally used in 6K (5+1) or 8K (7+1) configurations.",
|
||||||
|
Current = { Value = Beatmap.BeatmapInfo.SpecialStyle }
|
||||||
|
},
|
||||||
healthDrainSlider = new LabelledSliderBar<float>
|
healthDrainSlider = new LabelledSliderBar<float>
|
||||||
{
|
{
|
||||||
Label = BeatmapsetsStrings.ShowStatsDrain,
|
Label = BeatmapsetsStrings.ShowStatsDrain,
|
||||||
@ -145,6 +153,7 @@ namespace osu.Game.Rulesets.Mania.Edit.Setup
|
|||||||
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
||||||
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
||||||
Beatmap.Difficulty.CircleSize = keyCountSlider.Current.Value;
|
Beatmap.Difficulty.CircleSize = keyCountSlider.Current.Value;
|
||||||
|
Beatmap.BeatmapInfo.SpecialStyle = specialStyle.Current.Value;
|
||||||
Beatmap.Difficulty.DrainRate = healthDrainSlider.Current.Value;
|
Beatmap.Difficulty.DrainRate = healthDrainSlider.Current.Value;
|
||||||
Beatmap.Difficulty.OverallDifficulty = overallDifficultySlider.Current.Value;
|
Beatmap.Difficulty.OverallDifficulty = overallDifficultySlider.Current.Value;
|
||||||
Beatmap.Difficulty.SliderMultiplier = baseVelocitySlider.Current.Value;
|
Beatmap.Difficulty.SliderMultiplier = baseVelocitySlider.Current.Value;
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Graphics;
|
|
||||||
using osu.Game.Graphics.UserInterfaceV2;
|
|
||||||
using osu.Game.Screens.Edit.Setup;
|
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Mania.Edit.Setup
|
|
||||||
{
|
|
||||||
public partial class ManiaSetupSection : RulesetSetupSection
|
|
||||||
{
|
|
||||||
private LabelledSwitchButton specialStyle;
|
|
||||||
|
|
||||||
public ManiaSetupSection()
|
|
||||||
: base(new ManiaRuleset().RulesetInfo)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load()
|
|
||||||
{
|
|
||||||
Children = new Drawable[]
|
|
||||||
{
|
|
||||||
specialStyle = new LabelledSwitchButton
|
|
||||||
{
|
|
||||||
Label = "Use special (N+1) style",
|
|
||||||
Description = "Changes one column to act as a classic \"scratch\" or \"special\" column, which can be moved around by the user's skin (to the left/right/centre). Generally used in 6K (5+1) or 8K (7+1) configurations.",
|
|
||||||
Current = { Value = Beatmap.BeatmapInfo.SpecialStyle }
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void LoadComplete()
|
|
||||||
{
|
|
||||||
base.LoadComplete();
|
|
||||||
|
|
||||||
specialStyle.Current.BindValueChanged(_ => updateBeatmap());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateBeatmap()
|
|
||||||
{
|
|
||||||
Beatmap.BeatmapInfo.SpecialStyle = specialStyle.Current.Value;
|
|
||||||
Beatmap.SaveState();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -419,9 +419,10 @@ namespace osu.Game.Rulesets.Mania
|
|||||||
return new ManiaFilterCriteria();
|
return new ManiaFilterCriteria();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override RulesetSetupSection CreateEditorSetupSection() => new ManiaSetupSection();
|
public override IEnumerable<SetupSection> CreateEditorSetupSections() =>
|
||||||
|
[
|
||||||
public override SetupSection CreateEditorDifficultySection() => new ManiaDifficultySection();
|
new ManiaDifficultySection(),
|
||||||
|
];
|
||||||
|
|
||||||
public int GetKeyCount(IBeatmapInfo beatmapInfo, IReadOnlyList<Mod>? mods = null)
|
public int GetKeyCount(IBeatmapInfo beatmapInfo, IReadOnlyList<Mod>? mods = null)
|
||||||
=> ManiaBeatmapConverter.GetColumnCount(LegacyBeatmapConversionDifficultyInfo.FromBeatmapInfo(beatmapInfo), mods);
|
=> ManiaBeatmapConverter.GetColumnCount(LegacyBeatmapConversionDifficultyInfo.FromBeatmapInfo(beatmapInfo), mods);
|
||||||
|
150
osu.Game.Rulesets.Osu/Edit/Setup/OsuDifficultySection.cs
Normal file
150
osu.Game.Rulesets.Osu/Edit/Setup/OsuDifficultySection.cs
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
// 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.Linq;
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Bindables;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Localisation;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
using osu.Game.Localisation;
|
||||||
|
using osu.Game.Resources.Localisation.Web;
|
||||||
|
using osu.Game.Screens.Edit.Setup;
|
||||||
|
|
||||||
|
namespace osu.Game.Rulesets.Osu.Edit.Setup
|
||||||
|
{
|
||||||
|
public partial class OsuDifficultySection : SetupSection
|
||||||
|
{
|
||||||
|
private LabelledSliderBar<float> circleSizeSlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<float> healthDrainSlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<float> approachRateSlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<float> overallDifficultySlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<double> baseVelocitySlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<double> tickRateSlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<float> stackLeniency { get; set; } = null!;
|
||||||
|
|
||||||
|
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
circleSizeSlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsCs,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.CircleSizeDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.CircleSize)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
healthDrainSlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsDrain,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.DrainRateDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.DrainRate)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
approachRateSlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsAr,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.ApproachRateDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.ApproachRate)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
overallDifficultySlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsAccuracy,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.OverallDifficultyDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.OverallDifficulty)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
baseVelocitySlider = new LabelledSliderBar<double>
|
||||||
|
{
|
||||||
|
Label = EditorSetupStrings.BaseVelocity,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.BaseVelocityDescription,
|
||||||
|
Current = new BindableDouble(Beatmap.Difficulty.SliderMultiplier)
|
||||||
|
{
|
||||||
|
Default = 1.4,
|
||||||
|
MinValue = 0.4,
|
||||||
|
MaxValue = 3.6,
|
||||||
|
Precision = 0.01f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tickRateSlider = new LabelledSliderBar<double>
|
||||||
|
{
|
||||||
|
Label = EditorSetupStrings.TickRate,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.TickRateDescription,
|
||||||
|
Current = new BindableDouble(Beatmap.Difficulty.SliderTickRate)
|
||||||
|
{
|
||||||
|
Default = 1,
|
||||||
|
MinValue = 1,
|
||||||
|
MaxValue = 4,
|
||||||
|
Precision = 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
stackLeniency = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = "Stack Leniency",
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = "In play mode, osu! automatically stacks notes which occur at the same location. Increasing this value means it is more likely to snap notes of further time-distance.",
|
||||||
|
Current = new BindableFloat(Beatmap.BeatmapInfo.StackLeniency)
|
||||||
|
{
|
||||||
|
Default = 0.7f,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 1,
|
||||||
|
Precision = 0.1f
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var item in Children.OfType<LabelledSliderBar<float>>())
|
||||||
|
item.Current.ValueChanged += _ => updateValues();
|
||||||
|
|
||||||
|
foreach (var item in Children.OfType<LabelledSliderBar<double>>())
|
||||||
|
item.Current.ValueChanged += _ => updateValues();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateValues()
|
||||||
|
{
|
||||||
|
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
||||||
|
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
||||||
|
Beatmap.Difficulty.CircleSize = circleSizeSlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.DrainRate = healthDrainSlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.ApproachRate = approachRateSlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.OverallDifficulty = overallDifficultySlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.SliderMultiplier = baseVelocitySlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.SliderTickRate = tickRateSlider.Current.Value;
|
||||||
|
Beatmap.BeatmapInfo.StackLeniency = stackLeniency.Current.Value;
|
||||||
|
|
||||||
|
Beatmap.UpdateAllHitObjects();
|
||||||
|
Beatmap.SaveState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,56 +0,0 @@
|
|||||||
// 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.
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Bindables;
|
|
||||||
using osu.Game.Graphics.UserInterfaceV2;
|
|
||||||
using osu.Game.Screens.Edit.Setup;
|
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Osu.Edit.Setup
|
|
||||||
{
|
|
||||||
public partial class OsuSetupSection : RulesetSetupSection
|
|
||||||
{
|
|
||||||
private LabelledSliderBar<float> stackLeniency;
|
|
||||||
|
|
||||||
public OsuSetupSection()
|
|
||||||
: base(new OsuRuleset().RulesetInfo)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load()
|
|
||||||
{
|
|
||||||
Children = new[]
|
|
||||||
{
|
|
||||||
stackLeniency = new LabelledSliderBar<float>
|
|
||||||
{
|
|
||||||
Label = "Stack Leniency",
|
|
||||||
Description = "In play mode, osu! automatically stacks notes which occur at the same location. Increasing this value means it is more likely to snap notes of further time-distance.",
|
|
||||||
Current = new BindableFloat(Beatmap.BeatmapInfo.StackLeniency)
|
|
||||||
{
|
|
||||||
Default = 0.7f,
|
|
||||||
MinValue = 0,
|
|
||||||
MaxValue = 1,
|
|
||||||
Precision = 0.1f
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void LoadComplete()
|
|
||||||
{
|
|
||||||
base.LoadComplete();
|
|
||||||
|
|
||||||
stackLeniency.Current.BindValueChanged(_ => updateBeatmap());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateBeatmap()
|
|
||||||
{
|
|
||||||
Beatmap.BeatmapInfo.StackLeniency = stackLeniency.Current.Value;
|
|
||||||
Beatmap.UpdateAllHitObjects();
|
|
||||||
Beatmap.SaveState();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -336,7 +336,11 @@ namespace osu.Game.Rulesets.Osu
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public override RulesetSetupSection CreateEditorSetupSection() => new OsuSetupSection();
|
public override IEnumerable<SetupSection> CreateEditorSetupSections() =>
|
||||||
|
[
|
||||||
|
new OsuDifficultySection(),
|
||||||
|
new ColoursSection(),
|
||||||
|
];
|
||||||
|
|
||||||
/// <seealso cref="OsuHitObject.ApplyDefaultsToSelf"/>
|
/// <seealso cref="OsuHitObject.ApplyDefaultsToSelf"/>
|
||||||
/// <seealso cref="OsuHitWindows"/>
|
/// <seealso cref="OsuHitWindows"/>
|
||||||
|
105
osu.Game.Rulesets.Taiko/Edit/Setup/TaikoDifficultySection.cs
Normal file
105
osu.Game.Rulesets.Taiko/Edit/Setup/TaikoDifficultySection.cs
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
// 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.Linq;
|
||||||
|
using osu.Framework.Allocation;
|
||||||
|
using osu.Framework.Bindables;
|
||||||
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Framework.Localisation;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
|
using osu.Game.Graphics.UserInterfaceV2;
|
||||||
|
using osu.Game.Localisation;
|
||||||
|
using osu.Game.Resources.Localisation.Web;
|
||||||
|
using osu.Game.Screens.Edit.Setup;
|
||||||
|
|
||||||
|
namespace osu.Game.Rulesets.Taiko.Edit.Setup
|
||||||
|
{
|
||||||
|
public partial class TaikoDifficultySection : SetupSection
|
||||||
|
{
|
||||||
|
private LabelledSliderBar<float> healthDrainSlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<float> overallDifficultySlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<double> baseVelocitySlider { get; set; } = null!;
|
||||||
|
private LabelledSliderBar<double> tickRateSlider { get; set; } = null!;
|
||||||
|
|
||||||
|
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
||||||
|
|
||||||
|
[BackgroundDependencyLoader]
|
||||||
|
private void load()
|
||||||
|
{
|
||||||
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
healthDrainSlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsDrain,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.DrainRateDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.DrainRate)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
overallDifficultySlider = new LabelledSliderBar<float>
|
||||||
|
{
|
||||||
|
Label = BeatmapsetsStrings.ShowStatsAccuracy,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.OverallDifficultyDescription,
|
||||||
|
Current = new BindableFloat(Beatmap.Difficulty.OverallDifficulty)
|
||||||
|
{
|
||||||
|
Default = BeatmapDifficulty.DEFAULT_DIFFICULTY,
|
||||||
|
MinValue = 0,
|
||||||
|
MaxValue = 10,
|
||||||
|
Precision = 0.1f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
baseVelocitySlider = new LabelledSliderBar<double>
|
||||||
|
{
|
||||||
|
Label = EditorSetupStrings.BaseVelocity,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.BaseVelocityDescription,
|
||||||
|
Current = new BindableDouble(Beatmap.Difficulty.SliderMultiplier)
|
||||||
|
{
|
||||||
|
Default = 1.4,
|
||||||
|
MinValue = 0.4,
|
||||||
|
MaxValue = 3.6,
|
||||||
|
Precision = 0.01f,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tickRateSlider = new LabelledSliderBar<double>
|
||||||
|
{
|
||||||
|
Label = EditorSetupStrings.TickRate,
|
||||||
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
|
Description = EditorSetupStrings.TickRateDescription,
|
||||||
|
Current = new BindableDouble(Beatmap.Difficulty.SliderTickRate)
|
||||||
|
{
|
||||||
|
Default = 1,
|
||||||
|
MinValue = 1,
|
||||||
|
MaxValue = 4,
|
||||||
|
Precision = 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (var item in Children.OfType<LabelledSliderBar<float>>())
|
||||||
|
item.Current.ValueChanged += _ => updateValues();
|
||||||
|
|
||||||
|
foreach (var item in Children.OfType<LabelledSliderBar<double>>())
|
||||||
|
item.Current.ValueChanged += _ => updateValues();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateValues()
|
||||||
|
{
|
||||||
|
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
||||||
|
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
||||||
|
Beatmap.Difficulty.DrainRate = healthDrainSlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.OverallDifficulty = overallDifficultySlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.SliderMultiplier = baseVelocitySlider.Current.Value;
|
||||||
|
Beatmap.Difficulty.SliderTickRate = tickRateSlider.Current.Value;
|
||||||
|
|
||||||
|
Beatmap.UpdateAllHitObjects();
|
||||||
|
Beatmap.SaveState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -35,6 +35,8 @@ using osu.Game.Rulesets.Configuration;
|
|||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Rulesets.Scoring.Legacy;
|
using osu.Game.Rulesets.Scoring.Legacy;
|
||||||
using osu.Game.Rulesets.Taiko.Configuration;
|
using osu.Game.Rulesets.Taiko.Configuration;
|
||||||
|
using osu.Game.Rulesets.Taiko.Edit.Setup;
|
||||||
|
using osu.Game.Screens.Edit.Setup;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Taiko
|
namespace osu.Game.Rulesets.Taiko
|
||||||
{
|
{
|
||||||
@ -188,6 +190,11 @@ namespace osu.Game.Rulesets.Taiko
|
|||||||
|
|
||||||
public override HitObjectComposer CreateHitObjectComposer() => new TaikoHitObjectComposer(this);
|
public override HitObjectComposer CreateHitObjectComposer() => new TaikoHitObjectComposer(this);
|
||||||
|
|
||||||
|
public override IEnumerable<SetupSection> CreateEditorSetupSections() =>
|
||||||
|
[
|
||||||
|
new TaikoDifficultySection(),
|
||||||
|
];
|
||||||
|
|
||||||
public override IBeatmapVerifier CreateBeatmapVerifier() => new TaikoBeatmapVerifier();
|
public override IBeatmapVerifier CreateBeatmapVerifier() => new TaikoBeatmapVerifier();
|
||||||
|
|
||||||
public override DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap) => new TaikoDifficultyCalculator(RulesetInfo, beatmap);
|
public override DifficultyCalculator CreateDifficultyCalculator(IWorkingBeatmap beatmap) => new TaikoDifficultyCalculator(RulesetInfo, beatmap);
|
||||||
|
@ -394,13 +394,12 @@ namespace osu.Game.Rulesets
|
|||||||
public virtual IRulesetFilterCriteria? CreateRulesetFilterCriteria() => null;
|
public virtual IRulesetFilterCriteria? CreateRulesetFilterCriteria() => null;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Can be overridden to add a ruleset-specific section to the editor beatmap setup screen.
|
/// Can be overridden to add ruleset-specific sections to the editor beatmap setup screen.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual RulesetSetupSection? CreateEditorSetupSection() => null;
|
public virtual IEnumerable<SetupSection> CreateEditorSetupSections() =>
|
||||||
|
[
|
||||||
/// <summary>
|
new DifficultySection(),
|
||||||
/// Can be overridden to alter the difficulty section to the editor beatmap setup screen.
|
new ColoursSection(),
|
||||||
/// </summary>
|
];
|
||||||
public virtual SetupSection? CreateEditorDifficultySection() => null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ using osu.Game.Localisation;
|
|||||||
|
|
||||||
namespace osu.Game.Screens.Edit.Setup
|
namespace osu.Game.Screens.Edit.Setup
|
||||||
{
|
{
|
||||||
internal partial class ColoursSection : SetupSection
|
public partial class ColoursSection : SetupSection
|
||||||
{
|
{
|
||||||
public override LocalisableString Title => EditorSetupStrings.ColoursHeader;
|
public override LocalisableString Title => EditorSetupStrings.ColoursHeader;
|
||||||
|
|
||||||
|
@ -15,12 +15,12 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
{
|
{
|
||||||
public partial class DifficultySection : SetupSection
|
public partial class DifficultySection : SetupSection
|
||||||
{
|
{
|
||||||
protected LabelledSliderBar<float> CircleSizeSlider { get; private set; } = null!;
|
private LabelledSliderBar<float> circleSizeSlider { get; set; } = null!;
|
||||||
protected LabelledSliderBar<float> HealthDrainSlider { get; private set; } = null!;
|
private LabelledSliderBar<float> healthDrainSlider { get; set; } = null!;
|
||||||
protected LabelledSliderBar<float> ApproachRateSlider { get; private set; } = null!;
|
private LabelledSliderBar<float> approachRateSlider { get; set; } = null!;
|
||||||
protected LabelledSliderBar<float> OverallDifficultySlider { get; private set; } = null!;
|
private LabelledSliderBar<float> overallDifficultySlider { get; set; } = null!;
|
||||||
protected LabelledSliderBar<double> BaseVelocitySlider { get; private set; } = null!;
|
private LabelledSliderBar<double> baseVelocitySlider { get; set; } = null!;
|
||||||
protected LabelledSliderBar<double> TickRateSlider { get; private set; } = null!;
|
private LabelledSliderBar<double> tickRateSlider { get; set; } = null!;
|
||||||
|
|
||||||
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
public override LocalisableString Title => EditorSetupStrings.DifficultyHeader;
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
{
|
{
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
CircleSizeSlider = new LabelledSliderBar<float>
|
circleSizeSlider = new LabelledSliderBar<float>
|
||||||
{
|
{
|
||||||
Label = BeatmapsetsStrings.ShowStatsCs,
|
Label = BeatmapsetsStrings.ShowStatsCs,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -42,7 +42,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
Precision = 0.1f,
|
Precision = 0.1f,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
HealthDrainSlider = new LabelledSliderBar<float>
|
healthDrainSlider = new LabelledSliderBar<float>
|
||||||
{
|
{
|
||||||
Label = BeatmapsetsStrings.ShowStatsDrain,
|
Label = BeatmapsetsStrings.ShowStatsDrain,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -55,7 +55,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
Precision = 0.1f,
|
Precision = 0.1f,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ApproachRateSlider = new LabelledSliderBar<float>
|
approachRateSlider = new LabelledSliderBar<float>
|
||||||
{
|
{
|
||||||
Label = BeatmapsetsStrings.ShowStatsAr,
|
Label = BeatmapsetsStrings.ShowStatsAr,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -68,7 +68,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
Precision = 0.1f,
|
Precision = 0.1f,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
OverallDifficultySlider = new LabelledSliderBar<float>
|
overallDifficultySlider = new LabelledSliderBar<float>
|
||||||
{
|
{
|
||||||
Label = BeatmapsetsStrings.ShowStatsAccuracy,
|
Label = BeatmapsetsStrings.ShowStatsAccuracy,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -81,7 +81,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
Precision = 0.1f,
|
Precision = 0.1f,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
BaseVelocitySlider = new LabelledSliderBar<double>
|
baseVelocitySlider = new LabelledSliderBar<double>
|
||||||
{
|
{
|
||||||
Label = EditorSetupStrings.BaseVelocity,
|
Label = EditorSetupStrings.BaseVelocity,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -94,7 +94,7 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
Precision = 0.01f,
|
Precision = 0.01f,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
TickRateSlider = new LabelledSliderBar<double>
|
tickRateSlider = new LabelledSliderBar<double>
|
||||||
{
|
{
|
||||||
Label = EditorSetupStrings.TickRate,
|
Label = EditorSetupStrings.TickRate,
|
||||||
FixedLabelWidth = LABEL_WIDTH,
|
FixedLabelWidth = LABEL_WIDTH,
|
||||||
@ -120,12 +120,12 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
{
|
{
|
||||||
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
// for now, update these on commit rather than making BeatmapMetadata bindables.
|
||||||
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
// after switching database engines we can reconsider if switching to bindables is a good direction.
|
||||||
Beatmap.Difficulty.CircleSize = CircleSizeSlider.Current.Value;
|
Beatmap.Difficulty.CircleSize = circleSizeSlider.Current.Value;
|
||||||
Beatmap.Difficulty.DrainRate = HealthDrainSlider.Current.Value;
|
Beatmap.Difficulty.DrainRate = healthDrainSlider.Current.Value;
|
||||||
Beatmap.Difficulty.ApproachRate = ApproachRateSlider.Current.Value;
|
Beatmap.Difficulty.ApproachRate = approachRateSlider.Current.Value;
|
||||||
Beatmap.Difficulty.OverallDifficulty = OverallDifficultySlider.Current.Value;
|
Beatmap.Difficulty.OverallDifficulty = overallDifficultySlider.Current.Value;
|
||||||
Beatmap.Difficulty.SliderMultiplier = BaseVelocitySlider.Current.Value;
|
Beatmap.Difficulty.SliderMultiplier = baseVelocitySlider.Current.Value;
|
||||||
Beatmap.Difficulty.SliderTickRate = TickRateSlider.Current.Value;
|
Beatmap.Difficulty.SliderTickRate = tickRateSlider.Current.Value;
|
||||||
|
|
||||||
Beatmap.UpdateAllHitObjects();
|
Beatmap.UpdateAllHitObjects();
|
||||||
Beatmap.SaveState();
|
Beatmap.SaveState();
|
||||||
|
@ -29,18 +29,14 @@ namespace osu.Game.Screens.Edit.Setup
|
|||||||
{
|
{
|
||||||
var ruleset = beatmap.BeatmapInfo.Ruleset.CreateInstance();
|
var ruleset = beatmap.BeatmapInfo.Ruleset.CreateInstance();
|
||||||
|
|
||||||
var sectionsEnumerable = new List<SetupSection>
|
List<SetupSection> sectionsEnumerable =
|
||||||
{
|
[
|
||||||
new ResourcesSection(),
|
new ResourcesSection(),
|
||||||
new MetadataSection(),
|
new MetadataSection()
|
||||||
ruleset.CreateEditorDifficultySection() ?? new DifficultySection(),
|
];
|
||||||
new ColoursSection(),
|
|
||||||
new DesignSection(),
|
|
||||||
};
|
|
||||||
|
|
||||||
var rulesetSpecificSection = ruleset.CreateEditorSetupSection();
|
sectionsEnumerable.AddRange(ruleset.CreateEditorSetupSections());
|
||||||
if (rulesetSpecificSection != null)
|
sectionsEnumerable.Add(new DesignSection());
|
||||||
sectionsEnumerable.Add(rulesetSpecificSection);
|
|
||||||
|
|
||||||
Add(new Box
|
Add(new Box
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user