1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 11:37:28 +08:00

Merge branch 'master' into wrap-beatmap-listing-filters

This commit is contained in:
Bartłomiej Dach 2024-03-11 14:59:48 +01:00
commit 09179f99c0
No known key found for this signature in database
5 changed files with 69 additions and 33 deletions

View File

@ -23,7 +23,7 @@ namespace osu.Game.Tests.Visual.Gameplay
private TestSkinSourceContainer skinSource = null!;
private PausableSkinnableSound skinnableSound = null!;
private const string sample_lookup = "Gameplay/normal-sliderslide";
private const string sample_lookup = "Gameplay/Argon/normal-sliderslide";
[SetUpSteps]
public void SetUpSteps()

View File

@ -3,7 +3,6 @@
#nullable disable
using System;
using Markdig.Syntax;
using osu.Framework.Allocation;
using osu.Framework.Extensions.Color4Extensions;
@ -22,29 +21,61 @@ using osuTK.Graphics;
namespace osu.Game.Overlays.Wiki
{
public partial class WikiPanelContainer : Container
public partial class WikiPanelContainer : CompositeDrawable
{
private WikiPanelMarkdownContainer panelContainer;
private const float padding = 3;
private readonly string text;
private readonly bool isFullWidth;
public WikiPanelContainer(string text, bool isFullWidth = false)
{
this.text = text;
this.isFullWidth = isFullWidth;
RelativeSizeAxes = Axes.X;
Padding = new MarginPadding(3);
}
private PanelBackground background;
[BackgroundDependencyLoader]
private void load(OverlayColourProvider colourProvider, IAPIProvider api)
private void load(IAPIProvider api)
{
Children = new Drawable[]
RelativeSizeAxes = Axes.X;
AutoSizeAxes = Axes.Y;
InternalChildren = new Drawable[]
{
background = new PanelBackground
{
BypassAutoSizeAxes = Axes.Both
},
new Container
{
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
Padding = new MarginPadding(padding),
Child = new WikiPanelMarkdownContainer(isFullWidth)
{
CurrentPath = $@"{api.WebsiteRootUrl}/wiki/",
Text = text,
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y
}
}
};
}
protected override void Update()
{
base.Update();
background.Size = Parent!.DrawSize * new Vector2(Size.X, 1);
}
private partial class PanelBackground : CompositeDrawable
{
[BackgroundDependencyLoader]
private void load(OverlayColourProvider colourProvider)
{
Padding = new MarginPadding(padding);
InternalChild = new Container
{
RelativeSizeAxes = Axes.Both,
Masking = true,
@ -60,22 +91,9 @@ namespace osu.Game.Overlays.Wiki
{
Colour = colourProvider.Background4,
RelativeSizeAxes = Axes.Both,
},
},
panelContainer = new WikiPanelMarkdownContainer(isFullWidth)
{
CurrentPath = $@"{api.WebsiteRootUrl}/wiki/",
Text = text,
RelativeSizeAxes = Axes.X,
AutoSizeAxes = Axes.Y,
}
};
}
protected override void Update()
{
base.Update();
Height = Math.Max(panelContainer.Height, Parent!.DrawHeight);
}
};
}
}
private partial class WikiPanelMarkdownContainer : WikiMarkdownContainer

View File

@ -162,26 +162,43 @@ namespace osu.Game.Screens.Edit.Timing
// If the selected group only has one control point, update the tracking type.
case 1:
trackedType = selectedGroup.Value?.ControlPoints.Single().GetType();
trackedType = selectedGroup.Value?.ControlPoints[0].GetType();
break;
// If the selected group has more than one control point, choose the first as the tracking type
// if we don't already have a singular tracked type.
default:
trackedType ??= selectedGroup.Value?.ControlPoints.FirstOrDefault()?.GetType();
trackedType ??= selectedGroup.Value?.ControlPoints[0].GetType();
break;
}
}
if (trackedType != null)
{
double accurateTime = clock.CurrentTimeAccurate;
// We don't have an efficient way of looking up groups currently, only individual point types.
// To improve the efficiency of this in the future, we should reconsider the overall structure of ControlPointInfo.
// Find the next group which has the same type as the selected one.
var found = Beatmap.ControlPointInfo.Groups
.Where(g => g.ControlPoints.Any(cp => cp.GetType() == trackedType))
.LastOrDefault(g => g.Time <= clock.CurrentTimeAccurate);
ControlPointGroup? found = null;
for (int i = 0; i < Beatmap.ControlPointInfo.Groups.Count; i++)
{
var g = Beatmap.ControlPointInfo.Groups[i];
if (g.Time > accurateTime)
continue;
for (int j = 0; j < g.ControlPoints.Count; j++)
{
if (g.ControlPoints[j].GetType() == trackedType)
{
found = g;
break;
}
}
}
if (found != null)
selectedGroup.Value = found;

View File

@ -15,11 +15,12 @@ namespace osu.Game.Users.Drawables
{
private readonly CountryCode countryCode;
public LocalisableString TooltipText => countryCode == CountryCode.Unknown ? string.Empty : countryCode.GetDescription();
public LocalisableString TooltipText { get; }
public DrawableFlag(CountryCode countryCode)
{
this.countryCode = countryCode;
TooltipText = countryCode == CountryCode.Unknown ? string.Empty : countryCode.GetDescription();
}
[BackgroundDependencyLoader]

View File

@ -37,7 +37,7 @@
</PackageReference>
<PackageReference Include="Realm" Version="11.7.0" />
<PackageReference Include="ppy.osu.Framework" Version="2024.306.0" />
<PackageReference Include="ppy.osu.Game.Resources" Version="2024.207.0" />
<PackageReference Include="ppy.osu.Game.Resources" Version="2024.309.0" />
<PackageReference Include="Sentry" Version="3.41.3" />
<!-- Held back due to 0.34.0 failing AOT compilation on ZstdSharp.dll dependency. -->
<PackageReference Include="SharpCompress" Version="0.36.0" />