diff --git a/osu.Game/Skinning/IAnimationTimeReference.cs b/osu.Game/Skinning/IAnimationTimeReference.cs
index bcff10a24b..4ed5ef64c3 100644
--- a/osu.Game/Skinning/IAnimationTimeReference.cs
+++ b/osu.Game/Skinning/IAnimationTimeReference.cs
@@ -9,6 +9,10 @@ namespace osu.Game.Skinning
///
/// Denotes an object which provides a reference time to start animations from.
///
+ ///
+ /// This should not be used to start an animation immediately at the current time.
+ /// To do so, use with startAtCurrentTime = true
instead.
+ ///
[Cached]
public interface IAnimationTimeReference
{
diff --git a/osu.Game/Skinning/LegacySkinExtensions.cs b/osu.Game/Skinning/LegacySkinExtensions.cs
index 8765b161d4..a736174f13 100644
--- a/osu.Game/Skinning/LegacySkinExtensions.cs
+++ b/osu.Game/Skinning/LegacySkinExtensions.cs
@@ -14,7 +14,8 @@ namespace osu.Game.Skinning
{
public static class LegacySkinExtensions
{
- public static Drawable GetAnimation(this ISkin source, string componentName, bool animatable, bool looping, bool applyConfigFrameRate = false, string animationSeparator = "-")
+ public static Drawable GetAnimation(this ISkin source, string componentName, bool animatable, bool looping, bool applyConfigFrameRate = false, string animationSeparator = "-",
+ bool startAtCurrentTime = false)
{
Texture texture;
@@ -24,7 +25,7 @@ namespace osu.Game.Skinning
if (textures.Length > 0)
{
- var animation = new SkinnableTextureAnimation
+ var animation = new SkinnableTextureAnimation(startAtCurrentTime)
{
DefaultFrameLength = getFrameLength(source, applyConfigFrameRate, textures),
Repeat = looping,
@@ -60,8 +61,8 @@ namespace osu.Game.Skinning
[Resolved(canBeNull: true)]
private IAnimationTimeReference timeReference { get; set; }
- public SkinnableTextureAnimation()
- : base(false)
+ public SkinnableTextureAnimation(bool startAtCurrentTime = true)
+ : base(startAtCurrentTime)
{
}