mirror of
https://github.com/osukey/osukey.git
synced 2025-08-08 00:53:56 +09:00
Merge pull request #9763 from Wieku/playfield-shift
Add vertical offset to osu! playfield to match stable
This commit is contained in:
@ -35,7 +35,7 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
|
|
||||||
protected override PassThroughInputManager CreateInputManager() => new OsuInputManager(Ruleset.RulesetInfo);
|
protected override PassThroughInputManager CreateInputManager() => new OsuInputManager(Ruleset.RulesetInfo);
|
||||||
|
|
||||||
public override PlayfieldAdjustmentContainer CreatePlayfieldAdjustmentContainer() => new OsuPlayfieldAdjustmentContainer();
|
public override PlayfieldAdjustmentContainer CreatePlayfieldAdjustmentContainer() => new OsuPlayfieldAdjustmentContainer { AlignWithStoryboard = true };
|
||||||
|
|
||||||
protected override ResumeOverlay CreateResumeOverlay() => new OsuResumeOverlay();
|
protected override ResumeOverlay CreateResumeOverlay() => new OsuResumeOverlay();
|
||||||
|
|
||||||
|
@ -11,10 +11,19 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
public class OsuPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer
|
public class OsuPlayfieldAdjustmentContainer : PlayfieldAdjustmentContainer
|
||||||
{
|
{
|
||||||
protected override Container<Drawable> Content => content;
|
protected override Container<Drawable> Content => content;
|
||||||
private readonly Container content;
|
private readonly ScalingContainer content;
|
||||||
|
|
||||||
private const float playfield_size_adjust = 0.8f;
|
private const float playfield_size_adjust = 0.8f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// When true, an offset is applied to allow alignment with historical storyboards displayed in the same parent space.
|
||||||
|
/// This will shift the playfield downwards slightly.
|
||||||
|
/// </summary>
|
||||||
|
public bool AlignWithStoryboard
|
||||||
|
{
|
||||||
|
set => content.PlayfieldShift = value;
|
||||||
|
}
|
||||||
|
|
||||||
public OsuPlayfieldAdjustmentContainer()
|
public OsuPlayfieldAdjustmentContainer()
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre;
|
Anchor = Anchor.Centre;
|
||||||
@ -39,6 +48,8 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private class ScalingContainer : Container
|
private class ScalingContainer : Container
|
||||||
{
|
{
|
||||||
|
internal bool PlayfieldShift { get; set; }
|
||||||
|
|
||||||
protected override void Update()
|
protected override void Update()
|
||||||
{
|
{
|
||||||
base.Update();
|
base.Update();
|
||||||
@ -55,6 +66,7 @@ namespace osu.Game.Rulesets.Osu.UI
|
|||||||
// Scale = 819.2 / 512
|
// Scale = 819.2 / 512
|
||||||
// Scale = 1.6
|
// Scale = 1.6
|
||||||
Scale = new Vector2(Parent.ChildSize.X / OsuPlayfield.BASE_SIZE.X);
|
Scale = new Vector2(Parent.ChildSize.X / OsuPlayfield.BASE_SIZE.X);
|
||||||
|
Position = new Vector2(0, (PlayfieldShift ? 8f : 0f) * Scale.X);
|
||||||
// Size = 0.625
|
// Size = 0.625
|
||||||
Size = Vector2.Divide(Vector2.One, Scale);
|
Size = Vector2.Divide(Vector2.One, Scale);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user