1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 09:07:25 +08:00
osu-lazer/osu.Game/Tests/Beatmaps/TestWorkingBeatmap.cs

47 lines
1.3 KiB
C#
Raw Normal View History

2018-04-13 17:19:50 +08:00
// Copyright (c) 2007-2018 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Linq;
using osu.Framework.Audio.Track;
using osu.Framework.Graphics.Textures;
using osu.Game.Beatmaps;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Objects.Types;
namespace osu.Game.Tests.Beatmaps
{
public class TestWorkingBeatmap : WorkingBeatmap
{
public TestWorkingBeatmap(RulesetInfo ruleset)
: this(new TestBeatmap(ruleset))
{
}
2018-04-19 19:44:38 +08:00
public TestWorkingBeatmap(IBeatmap beatmap)
2018-04-13 17:19:50 +08:00
: base(beatmap.BeatmapInfo)
{
this.beatmap = beatmap;
}
2018-04-19 19:44:38 +08:00
private readonly IBeatmap beatmap;
protected override IBeatmap GetBeatmap() => beatmap;
2018-04-13 17:19:50 +08:00
protected override Texture GetBackground() => null;
protected override Track GetTrack()
{
var lastObject = beatmap.HitObjects.LastOrDefault();
if (lastObject != null)
return new TestTrack(((lastObject as IHasEndTime)?.EndTime ?? lastObject.StartTime) + 1000);
return new TrackVirtual();
}
private class TestTrack : TrackVirtual
{
public TestTrack(double length)
{
Length = length;
}
}
}
}