// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Game.Rulesets.UI; using osuTK; namespace osu.Game.Rulesets.Catch.UI { public class CatchPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer { protected override Container Content => content; private readonly Container content; public CatchPlayfieldAdjustmentContainer() { Anchor = Anchor.TopCentre; Origin = Anchor.TopCentre; Size = new Vector2(0.86f); // matches stable's vertical offset for catcher plate InternalChild = new Container { Anchor = Anchor.Centre, Origin = Anchor.Centre, RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fit, FillAspectRatio = 4f / 3, Child = content = new ScalingContainer { RelativeSizeAxes = Axes.Both } }; } /// /// A which scales its content relative to a target width. /// private class ScalingContainer : Container { protected override void Update() { base.Update(); Scale = new Vector2(Parent.ChildSize.X / CatchPlayfield.BASE_WIDTH); Size = Vector2.Divide(Vector2.One, Scale); } } } }