Replace TimeSignatures enum with struct for storage of arbitrary meter

This commit is contained in:
Bartłomiej Dach
2022-01-22 17:27:27 +01:00
parent ccac7b85be
commit 735414bc49
17 changed files with 84 additions and 32 deletions

View File

@ -125,7 +125,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
if (beat == 0 && i == 0)
nextMinTick = float.MinValue;
int indexInBar = beat % ((int)point.TimeSignature * beatDivisor.Value);
int indexInBar = beat % (point.TimeSignature.Numerator * beatDivisor.Value);
int divisor = BindableBeatDivisor.GetDivisorForBeatIndex(beat, beatDivisor.Value);
var colour = BindableBeatDivisor.GetColourFor(divisor, colours);

View File

@ -13,7 +13,7 @@ namespace osu.Game.Screens.Edit.Timing.RowAttributes
public class TimingRowAttribute : RowAttribute
{
private readonly BindableNumber<double> beatLength;
private readonly Bindable<TimeSignatures> timeSignature;
private readonly Bindable<TimeSignature> timeSignature;
private OsuSpriteText text;
public TimingRowAttribute(TimingControlPoint timing)

View File

@ -15,7 +15,7 @@ namespace osu.Game.Screens.Edit.Timing
internal class TimingSection : Section<TimingControlPoint>
{
private SettingsSlider<double> bpmSlider;
private SettingsEnumDropdown<TimeSignatures> timeSignature;
private SettingsDropdown<TimeSignature> timeSignature;
private BPMTextBox bpmTextEntry;
[BackgroundDependencyLoader]
@ -25,9 +25,14 @@ namespace osu.Game.Screens.Edit.Timing
{
bpmTextEntry = new BPMTextBox(),
bpmSlider = new BPMSlider(),
timeSignature = new SettingsEnumDropdown<TimeSignatures>
timeSignature = new SettingsDropdown<TimeSignature>
{
LabelText = "Time Signature"
LabelText = "Time Signature",
Items = new[]
{
TimeSignature.SimpleTriple,
TimeSignature.SimpleQuadruple
}
},
});
}