// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. #nullable disable using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Shapes; using osu.Game.Graphics; using osu.Game.Rulesets.Osu.Objects; using osuTK; namespace osu.Game.Rulesets.Osu.Edit.Blueprints.Spinners.Components { public class SpinnerPiece : BlueprintPiece { private readonly Circle circle; private readonly Circle ring; public SpinnerPiece() { Origin = Anchor.Centre; RelativeSizeAxes = Axes.Both; FillMode = FillMode.Fit; Size = new Vector2(1); InternalChildren = new Drawable[] { circle = new Circle { RelativeSizeAxes = Axes.Both, Alpha = 0.5f, }, ring = new Circle { Anchor = Anchor.Centre, Origin = Anchor.Centre, Size = new Vector2(OsuHitObject.OBJECT_RADIUS), }, }; } [BackgroundDependencyLoader] private void load(OsuColour colours) { Colour = colours.Yellow; } public override void UpdateFrom(Spinner hitObject) { base.UpdateFrom(hitObject); ring.Scale = new Vector2(hitObject.Scale); } public override bool ReceivePositionalInputAt(Vector2 screenSpacePos) => circle.ReceivePositionalInputAt(screenSpacePos); } }