Fix StackHeight changes not causing position updates

This commit is contained in:
smoogipoo 2018-10-03 17:06:18 +09:00
parent 7809ce9361
commit 1cd11a6e5b
2 changed files with 16 additions and 1 deletions

View File

@ -61,6 +61,7 @@ public DrawableHitCircle(HitCircle h)
Size = circle.DrawSize;
HitObject.PositionChanged += _ => Position = HitObject.StackedPosition;
HitObject.StackHeightChanged += _ => Position = HitObject.StackedPosition;
}
public override Color4 AccentColour

View File

@ -16,6 +16,7 @@ public abstract class OsuHitObject : HitObject, IHasComboInformation, IHasEditab
public const double OBJECT_RADIUS = 64;
public event Action<Vector2> PositionChanged;
public event Action<int> StackHeightChanged;
public double TimePreempt = 600;
public double TimeFadeIn = 400;
@ -44,7 +45,20 @@ public Vector2 Position
public Vector2 StackedEndPosition => EndPosition + StackOffset;
public virtual int StackHeight { get; set; }
private int stackHeight;
public int StackHeight
{
get => stackHeight;
set
{
if (stackHeight == value)
return;
stackHeight = value;
StackHeightChanged?.Invoke(value);
}
}
public Vector2 StackOffset => new Vector2(StackHeight * Scale * -6.4f);