// Copyright (c) 2007-2017 ppy Pty Ltd . // Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE using System; using osu.Framework.Graphics; namespace osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces { public class ElongatedCirclePiece : CirclePiece { /// /// As we are being used to define the absolute size of hits, we need to be given a relative reference of our containing playfield container. /// public Func PlayfieldLengthReference; /// /// The length of this piece as a multiple of the value returned by /// public float Length; public ElongatedCirclePiece(bool isStrong = false) : base(isStrong) { RelativeSizeAxes = Axes.Y; } protected override void Update() { base.Update(); var padding = Content.DrawHeight * Content.Width / 2; Content.Padding = new MarginPadding { Left = padding, Right = padding, }; Width = (PlayfieldLengthReference?.Invoke() ?? 0) * Length + DrawHeight; } } }