mirror of
https://github.com/ppy/osu.git
synced 2025-02-22 05:13:21 +08:00
Merge branch 'master' into remove-hud-overlay-unused-pieces
This commit is contained in:
commit
78952c07b0
@ -1,28 +1,22 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.EmptyFreeform.Objects;
|
using osu.Game.Rulesets.EmptyFreeform.Objects;
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.EmptyFreeform.Replays
|
namespace osu.Game.Rulesets.EmptyFreeform.Replays
|
||||||
{
|
{
|
||||||
public class EmptyFreeformAutoGenerator : AutoGenerator
|
public class EmptyFreeformAutoGenerator : AutoGenerator<EmptyFreeformReplayFrame>
|
||||||
{
|
{
|
||||||
protected Replay Replay;
|
|
||||||
protected List<ReplayFrame> Frames => Replay.Frames;
|
|
||||||
|
|
||||||
public new Beatmap<EmptyFreeformHitObject> Beatmap => (Beatmap<EmptyFreeformHitObject>)base.Beatmap;
|
public new Beatmap<EmptyFreeformHitObject> Beatmap => (Beatmap<EmptyFreeformHitObject>)base.Beatmap;
|
||||||
|
|
||||||
public EmptyFreeformAutoGenerator(IBeatmap beatmap)
|
public EmptyFreeformAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Replay Generate()
|
protected override void GenerateFrames()
|
||||||
{
|
{
|
||||||
Frames.Add(new EmptyFreeformReplayFrame());
|
Frames.Add(new EmptyFreeformReplayFrame());
|
||||||
|
|
||||||
@ -35,8 +29,6 @@ namespace osu.Game.Rulesets.EmptyFreeform.Replays
|
|||||||
// todo: add required inputs and extra frames.
|
// todo: add required inputs and extra frames.
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,22 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.Pippidon.Objects;
|
using osu.Game.Rulesets.Pippidon.Objects;
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Pippidon.Replays
|
namespace osu.Game.Rulesets.Pippidon.Replays
|
||||||
{
|
{
|
||||||
public class PippidonAutoGenerator : AutoGenerator
|
public class PippidonAutoGenerator : AutoGenerator<PippidonReplayFrame>
|
||||||
{
|
{
|
||||||
protected Replay Replay;
|
|
||||||
protected List<ReplayFrame> Frames => Replay.Frames;
|
|
||||||
|
|
||||||
public new Beatmap<PippidonHitObject> Beatmap => (Beatmap<PippidonHitObject>)base.Beatmap;
|
public new Beatmap<PippidonHitObject> Beatmap => (Beatmap<PippidonHitObject>)base.Beatmap;
|
||||||
|
|
||||||
public PippidonAutoGenerator(IBeatmap beatmap)
|
public PippidonAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Replay Generate()
|
protected override void GenerateFrames()
|
||||||
{
|
{
|
||||||
Frames.Add(new PippidonReplayFrame());
|
Frames.Add(new PippidonReplayFrame());
|
||||||
|
|
||||||
@ -34,8 +28,6 @@ namespace osu.Game.Rulesets.Pippidon.Replays
|
|||||||
Position = hitObject.Position,
|
Position = hitObject.Position,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,22 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.EmptyScrolling.Objects;
|
using osu.Game.Rulesets.EmptyScrolling.Objects;
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.EmptyScrolling.Replays
|
namespace osu.Game.Rulesets.EmptyScrolling.Replays
|
||||||
{
|
{
|
||||||
public class EmptyScrollingAutoGenerator : AutoGenerator
|
public class EmptyScrollingAutoGenerator : AutoGenerator<EmptyScrollingReplayFrame>
|
||||||
{
|
{
|
||||||
protected Replay Replay;
|
|
||||||
protected List<ReplayFrame> Frames => Replay.Frames;
|
|
||||||
|
|
||||||
public new Beatmap<EmptyScrollingHitObject> Beatmap => (Beatmap<EmptyScrollingHitObject>)base.Beatmap;
|
public new Beatmap<EmptyScrollingHitObject> Beatmap => (Beatmap<EmptyScrollingHitObject>)base.Beatmap;
|
||||||
|
|
||||||
public EmptyScrollingAutoGenerator(IBeatmap beatmap)
|
public EmptyScrollingAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Replay Generate()
|
protected override void GenerateFrames()
|
||||||
{
|
{
|
||||||
Frames.Add(new EmptyScrollingReplayFrame());
|
Frames.Add(new EmptyScrollingReplayFrame());
|
||||||
|
|
||||||
@ -34,8 +28,6 @@ namespace osu.Game.Rulesets.EmptyScrolling.Replays
|
|||||||
// todo: add required inputs and extra frames.
|
// todo: add required inputs and extra frames.
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,29 +2,23 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.Pippidon.Objects;
|
using osu.Game.Rulesets.Pippidon.Objects;
|
||||||
using osu.Game.Rulesets.Pippidon.UI;
|
using osu.Game.Rulesets.Pippidon.UI;
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Pippidon.Replays
|
namespace osu.Game.Rulesets.Pippidon.Replays
|
||||||
{
|
{
|
||||||
public class PippidonAutoGenerator : AutoGenerator
|
public class PippidonAutoGenerator : AutoGenerator<PippidonReplayFrame>
|
||||||
{
|
{
|
||||||
protected Replay Replay;
|
|
||||||
protected List<ReplayFrame> Frames => Replay.Frames;
|
|
||||||
|
|
||||||
public new Beatmap<PippidonHitObject> Beatmap => (Beatmap<PippidonHitObject>)base.Beatmap;
|
public new Beatmap<PippidonHitObject> Beatmap => (Beatmap<PippidonHitObject>)base.Beatmap;
|
||||||
|
|
||||||
public PippidonAutoGenerator(IBeatmap beatmap)
|
public PippidonAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override Replay Generate()
|
protected override void GenerateFrames()
|
||||||
{
|
{
|
||||||
int currentLane = 0;
|
int currentLane = 0;
|
||||||
|
|
||||||
@ -55,8 +49,6 @@ namespace osu.Game.Rulesets.Pippidon.Replays
|
|||||||
|
|
||||||
currentLane = hitObject.Lane;
|
currentLane = hitObject.Lane;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFrame(double time, PippidonAction direction)
|
private void addFrame(double time, PippidonAction direction)
|
||||||
|
@ -5,7 +5,6 @@ using System;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using osu.Framework.Utils;
|
using osu.Framework.Utils;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.Catch.Beatmaps;
|
using osu.Game.Rulesets.Catch.Beatmaps;
|
||||||
using osu.Game.Rulesets.Catch.Objects;
|
using osu.Game.Rulesets.Catch.Objects;
|
||||||
using osu.Game.Rulesets.Catch.UI;
|
using osu.Game.Rulesets.Catch.UI;
|
||||||
@ -13,26 +12,19 @@ using osu.Game.Rulesets.Replays;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Catch.Replays
|
namespace osu.Game.Rulesets.Catch.Replays
|
||||||
{
|
{
|
||||||
internal class CatchAutoGenerator : AutoGenerator
|
internal class CatchAutoGenerator : AutoGenerator<CatchReplayFrame>
|
||||||
{
|
{
|
||||||
public const double RELEASE_DELAY = 20;
|
|
||||||
|
|
||||||
public new CatchBeatmap Beatmap => (CatchBeatmap)base.Beatmap;
|
public new CatchBeatmap Beatmap => (CatchBeatmap)base.Beatmap;
|
||||||
|
|
||||||
public CatchAutoGenerator(IBeatmap beatmap)
|
public CatchAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Replay Replay;
|
protected override void GenerateFrames()
|
||||||
|
|
||||||
private CatchReplayFrame currentFrame;
|
|
||||||
|
|
||||||
public override Replay Generate()
|
|
||||||
{
|
{
|
||||||
if (Beatmap.HitObjects.Count == 0)
|
if (Beatmap.HitObjects.Count == 0)
|
||||||
return Replay;
|
return;
|
||||||
|
|
||||||
// todo: add support for HT DT
|
// todo: add support for HT DT
|
||||||
const double dash_speed = Catcher.BASE_SPEED;
|
const double dash_speed = Catcher.BASE_SPEED;
|
||||||
@ -119,15 +111,11 @@ namespace osu.Game.Rulesets.Catch.Replays
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addFrame(double time, float? position = null, bool dashing = false)
|
private void addFrame(double time, float? position = null, bool dashing = false)
|
||||||
{
|
{
|
||||||
var last = currentFrame;
|
Frames.Add(new CatchReplayFrame(time, position, dashing, LastFrame));
|
||||||
currentFrame = new CatchReplayFrame(time, position, dashing, last);
|
|
||||||
Replay.Frames.Add(currentFrame);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||||
using osu.Game.Rulesets.Mania.Objects;
|
using osu.Game.Rulesets.Mania.Objects;
|
||||||
using osu.Game.Rulesets.Objects;
|
using osu.Game.Rulesets.Objects;
|
||||||
@ -11,7 +10,7 @@ using osu.Game.Rulesets.Replays;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Mania.Replays
|
namespace osu.Game.Rulesets.Mania.Replays
|
||||||
{
|
{
|
||||||
internal class ManiaAutoGenerator : AutoGenerator
|
internal class ManiaAutoGenerator : AutoGenerator<ManiaReplayFrame>
|
||||||
{
|
{
|
||||||
public const double RELEASE_DELAY = 20;
|
public const double RELEASE_DELAY = 20;
|
||||||
|
|
||||||
@ -22,8 +21,6 @@ namespace osu.Game.Rulesets.Mania.Replays
|
|||||||
public ManiaAutoGenerator(ManiaBeatmap beatmap)
|
public ManiaAutoGenerator(ManiaBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
|
|
||||||
columnActions = new ManiaAction[Beatmap.TotalColumns];
|
columnActions = new ManiaAction[Beatmap.TotalColumns];
|
||||||
|
|
||||||
var normalAction = ManiaAction.Key1;
|
var normalAction = ManiaAction.Key1;
|
||||||
@ -43,12 +40,10 @@ namespace osu.Game.Rulesets.Mania.Replays
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Replay Replay;
|
protected override void GenerateFrames()
|
||||||
|
|
||||||
public override Replay Generate()
|
|
||||||
{
|
{
|
||||||
if (Beatmap.HitObjects.Count == 0)
|
if (Beatmap.HitObjects.Count == 0)
|
||||||
return Replay;
|
return;
|
||||||
|
|
||||||
var pointGroups = generateActionPoints().GroupBy(a => a.Time).OrderBy(g => g.First().Time);
|
var pointGroups = generateActionPoints().GroupBy(a => a.Time).OrderBy(g => g.First().Time);
|
||||||
|
|
||||||
@ -70,10 +65,8 @@ namespace osu.Game.Rulesets.Mania.Replays
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Replay.Frames.Add(new ManiaReplayFrame(group.First().Time, actions.ToArray()));
|
Frames.Add(new ManiaReplayFrame(group.First().Time, actions.ToArray()));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerable<IActionPoint> generateActionPoints()
|
private IEnumerable<IActionPoint> generateActionPoints()
|
||||||
|
@ -2,10 +2,8 @@
|
|||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
|
||||||
using osu.Game.Rulesets.Taiko.Objects;
|
using osu.Game.Rulesets.Taiko.Objects;
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
using osu.Game.Rulesets.Taiko.Beatmaps;
|
using osu.Game.Rulesets.Taiko.Beatmaps;
|
||||||
@ -13,7 +11,7 @@ using osu.Game.Rulesets.Objects;
|
|||||||
|
|
||||||
namespace osu.Game.Rulesets.Taiko.Replays
|
namespace osu.Game.Rulesets.Taiko.Replays
|
||||||
{
|
{
|
||||||
public class TaikoAutoGenerator : AutoGenerator
|
public class TaikoAutoGenerator : AutoGenerator<TaikoReplayFrame>
|
||||||
{
|
{
|
||||||
public new TaikoBeatmap Beatmap => (TaikoBeatmap)base.Beatmap;
|
public new TaikoBeatmap Beatmap => (TaikoBeatmap)base.Beatmap;
|
||||||
|
|
||||||
@ -22,16 +20,12 @@ namespace osu.Game.Rulesets.Taiko.Replays
|
|||||||
public TaikoAutoGenerator(IBeatmap beatmap)
|
public TaikoAutoGenerator(IBeatmap beatmap)
|
||||||
: base(beatmap)
|
: base(beatmap)
|
||||||
{
|
{
|
||||||
Replay = new Replay();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Replay Replay;
|
protected override void GenerateFrames()
|
||||||
protected List<ReplayFrame> Frames => Replay.Frames;
|
|
||||||
|
|
||||||
public override Replay Generate()
|
|
||||||
{
|
{
|
||||||
if (Beatmap.HitObjects.Count == 0)
|
if (Beatmap.HitObjects.Count == 0)
|
||||||
return Replay;
|
return;
|
||||||
|
|
||||||
bool hitButton = true;
|
bool hitButton = true;
|
||||||
|
|
||||||
@ -128,8 +122,6 @@ namespace osu.Game.Rulesets.Taiko.Replays
|
|||||||
|
|
||||||
hitButton = !hitButton;
|
hitButton = !hitButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Replay;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,40 +1,36 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using JetBrains.Annotations;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Replays;
|
using osu.Game.Replays;
|
||||||
using osu.Game.Rulesets.Objects;
|
using osu.Game.Rulesets.Objects;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Replays
|
namespace osu.Game.Rulesets.Replays
|
||||||
{
|
{
|
||||||
public abstract class AutoGenerator : IAutoGenerator
|
public abstract class AutoGenerator
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates the auto replay and returns it.
|
/// The default duration of a key press in milliseconds.
|
||||||
/// Every subclass of OsuAutoGeneratorBase should implement this!
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract Replay Generate();
|
public const double KEY_UP_DELAY = 50;
|
||||||
|
|
||||||
#region Parameters
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The beatmap we're making.
|
/// The beatmap the autoplay is generated for.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected IBeatmap Beatmap;
|
protected IBeatmap Beatmap { get; }
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
protected AutoGenerator(IBeatmap beatmap)
|
protected AutoGenerator(IBeatmap beatmap)
|
||||||
{
|
{
|
||||||
Beatmap = beatmap;
|
Beatmap = beatmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Constants
|
/// <summary>
|
||||||
|
/// Generate the replay of the autoplay.
|
||||||
// Shared amongst all modes
|
/// </summary>
|
||||||
public const double KEY_UP_DELAY = 50;
|
public abstract Replay Generate();
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
protected virtual HitObject GetNextObject(int currentIndex)
|
protected virtual HitObject GetNextObject(int currentIndex)
|
||||||
{
|
{
|
||||||
@ -44,4 +40,37 @@ namespace osu.Game.Rulesets.Replays
|
|||||||
return Beatmap.HitObjects[currentIndex + 1];
|
return Beatmap.HitObjects[currentIndex + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract class AutoGenerator<TFrame> : AutoGenerator
|
||||||
|
where TFrame : ReplayFrame
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The replay frames of the autoplay.
|
||||||
|
/// </summary>
|
||||||
|
protected readonly List<TFrame> Frames = new List<TFrame>();
|
||||||
|
|
||||||
|
[CanBeNull]
|
||||||
|
protected TFrame LastFrame => Frames.Count == 0 ? null : Frames[^1];
|
||||||
|
|
||||||
|
protected AutoGenerator(IBeatmap beatmap)
|
||||||
|
: base(beatmap)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public sealed override Replay Generate()
|
||||||
|
{
|
||||||
|
Frames.Clear();
|
||||||
|
GenerateFrames();
|
||||||
|
|
||||||
|
return new Replay
|
||||||
|
{
|
||||||
|
Frames = Frames.OrderBy(frame => frame.Time).Cast<ReplayFrame>().ToList()
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Generate the replay frames of the autoplay and populate <see cref="Frames"/>.
|
||||||
|
/// </summary>
|
||||||
|
protected abstract void GenerateFrames();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +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.
|
|
||||||
|
|
||||||
using osu.Game.Replays;
|
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Replays
|
|
||||||
{
|
|
||||||
public interface IAutoGenerator
|
|
||||||
{
|
|
||||||
Replay Generate();
|
|
||||||
}
|
|
||||||
}
|
|
@ -39,7 +39,8 @@ namespace osu.Game.Screens.Play.HUD
|
|||||||
|
|
||||||
private void onNewJudgement(JudgementResult judgement)
|
private void onNewJudgement(JudgementResult judgement)
|
||||||
{
|
{
|
||||||
if (judgement.IsHit && judgement.Type != HitResult.IgnoreHit) Flash(judgement);
|
if (judgement.IsHit && judgement.Type != HitResult.IgnoreHit)
|
||||||
|
Flash(judgement);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Dispose(bool isDisposing)
|
protected override void Dispose(bool isDisposing)
|
||||||
|
Loading…
Reference in New Issue
Block a user