mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 20:22:55 +08:00
Change breaks list to IReadOnlyList
This commit is contained in:
parent
f694ae416e
commit
2c3b411bb5
@ -1,6 +1,7 @@
|
||||
// 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.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Beatmaps.Timing;
|
||||
@ -24,8 +25,10 @@ namespace osu.Game.Rulesets.Mania.Tests.Mods
|
||||
public void TestBreaksPreservedOnOriginalBeatmap()
|
||||
{
|
||||
var beatmap = CreateBeatmap(new ManiaRuleset().RulesetInfo);
|
||||
beatmap.Breaks.Clear();
|
||||
beatmap.Breaks.Add(new BreakPeriod(0, 1000));
|
||||
var breaks = (List<BreakPeriod>)beatmap.Breaks;
|
||||
|
||||
breaks.Clear();
|
||||
breaks.Add(new BreakPeriod(0, 1000));
|
||||
|
||||
var workingBeatmap = new FlatWorkingBeatmap(beatmap);
|
||||
|
||||
|
@ -61,6 +61,12 @@ namespace osu.Game.Beatmaps
|
||||
|
||||
public ControlPointInfo ControlPointInfo { get; set; } = new ControlPointInfo();
|
||||
|
||||
IReadOnlyList<BreakPeriod> IBeatmap.Breaks
|
||||
{
|
||||
get => Breaks;
|
||||
set => Breaks = new List<BreakPeriod>(value);
|
||||
}
|
||||
|
||||
public List<BreakPeriod> Breaks { get; set; } = new List<BreakPeriod>();
|
||||
|
||||
public List<string> UnhandledEventLines { get; set; } = new List<string>();
|
||||
|
@ -7,6 +7,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using osu.Game.Beatmaps.Timing;
|
||||
using osu.Game.Rulesets;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
|
||||
@ -49,9 +50,6 @@ namespace osu.Game.Beatmaps
|
||||
original.BeatmapInfo = original.BeatmapInfo.Clone();
|
||||
original.ControlPointInfo = original.ControlPointInfo.DeepClone();
|
||||
|
||||
// Used in osu!mania conversion.
|
||||
original.Breaks = original.Breaks.ToList();
|
||||
|
||||
return ConvertBeatmap(original, cancellationToken);
|
||||
}
|
||||
|
||||
@ -68,7 +66,8 @@ namespace osu.Game.Beatmaps
|
||||
beatmap.BeatmapInfo = original.BeatmapInfo;
|
||||
beatmap.ControlPointInfo = original.ControlPointInfo;
|
||||
beatmap.HitObjects = convertHitObjects(original.HitObjects, original, cancellationToken).OrderBy(s => s.StartTime).ToList();
|
||||
beatmap.Breaks = original.Breaks;
|
||||
// Used in osu!mania conversion.
|
||||
beatmap.Breaks = new List<BreakPeriod>(original.Breaks);
|
||||
beatmap.UnhandledEventLines = original.UnhandledEventLines;
|
||||
|
||||
return beatmap;
|
||||
|
@ -40,7 +40,7 @@ namespace osu.Game.Beatmaps
|
||||
/// <summary>
|
||||
/// The breaks in this beatmap.
|
||||
/// </summary>
|
||||
List<BreakPeriod> Breaks { get; set; }
|
||||
IReadOnlyList<BreakPeriod> Breaks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// All lines from the [Events] section which aren't handled in the encoding process yet.
|
||||
|
@ -2,6 +2,7 @@
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
@ -64,8 +65,11 @@ namespace osu.Game.Database
|
||||
foreach (var controlPoint in playableBeatmap.ControlPointInfo.AllControlPoints)
|
||||
controlPoint.Time = Math.Floor(controlPoint.Time);
|
||||
|
||||
var breaks = new List<BreakPeriod>(playableBeatmap.Breaks.Count);
|
||||
for (int i = 0; i < playableBeatmap.Breaks.Count; i++)
|
||||
playableBeatmap.Breaks[i] = new BreakPeriod(Math.Floor(playableBeatmap.Breaks[i].StartTime), Math.Floor(playableBeatmap.Breaks[i].EndTime));
|
||||
breaks.Add(new BreakPeriod(Math.Floor(playableBeatmap.Breaks[i].StartTime), Math.Floor(playableBeatmap.Breaks[i].EndTime)));
|
||||
|
||||
playableBeatmap.Breaks = breaks;
|
||||
|
||||
foreach (var hitObject in playableBeatmap.HitObjects)
|
||||
{
|
||||
|
@ -327,7 +327,7 @@ namespace osu.Game.Rulesets.Difficulty
|
||||
set => baseBeatmap.Difficulty = value;
|
||||
}
|
||||
|
||||
public List<BreakPeriod> Breaks
|
||||
public IReadOnlyList<BreakPeriod> Breaks
|
||||
{
|
||||
get => baseBeatmap.Breaks;
|
||||
set => baseBeatmap.Breaks = value;
|
||||
|
@ -177,7 +177,7 @@ namespace osu.Game.Screens.Edit
|
||||
|
||||
public readonly BindableList<BreakPeriod> Breaks;
|
||||
|
||||
List<BreakPeriod> IBeatmap.Breaks
|
||||
IReadOnlyList<BreakPeriod> IBeatmap.Breaks
|
||||
{
|
||||
get => PlayableBeatmap.Breaks;
|
||||
set => PlayableBeatmap.Breaks = value;
|
||||
|
Loading…
Reference in New Issue
Block a user