mirror of
https://github.com/ppy/osu
synced 2025-01-09 15:49:32 +00:00
Don't use Parent
This commit is contained in:
parent
a8bfd21f3f
commit
b57d709d15
@ -28,8 +28,8 @@ namespace osu.Game.Screens.Select
|
|||||||
{
|
{
|
||||||
public class BeatmapCarousel : CompositeDrawable, IKeyBindingHandler<GlobalAction>
|
public class BeatmapCarousel : CompositeDrawable, IKeyBindingHandler<GlobalAction>
|
||||||
{
|
{
|
||||||
private const float bleed_top = FilterControl.HEIGHT;
|
public float BleedTop;
|
||||||
private const float bleed_bottom = Footer.HEIGHT;
|
public float BleedBottom;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Triggered when the <see cref="BeatmapSets"/> loaded change and are completely loaded.
|
/// Triggered when the <see cref="BeatmapSets"/> loaded change and are completely loaded.
|
||||||
@ -373,17 +373,17 @@ namespace osu.Game.Screens.Select
|
|||||||
/// the beatmap carousel bleeds into the <see cref="FilterControl"/> and the <see cref="Footer"/>
|
/// the beatmap carousel bleeds into the <see cref="FilterControl"/> and the <see cref="Footer"/>
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float visibleHalfHeight => (DrawHeight + bleed_bottom + bleed_top) / 2;
|
private float visibleHalfHeight => (DrawHeight + BleedBottom + BleedTop) / 2;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The position of the lower visible bound with respect to the current scroll position.
|
/// The position of the lower visible bound with respect to the current scroll position.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float visibleBottomBound => scroll.Current + DrawHeight + bleed_bottom;
|
private float visibleBottomBound => scroll.Current + DrawHeight + BleedBottom;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The position of the upper visible bound with respect to the current scroll position.
|
/// The position of the upper visible bound with respect to the current scroll position.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private float visibleUpperBound => scroll.Current - bleed_top;
|
private float visibleUpperBound => scroll.Current - BleedTop;
|
||||||
|
|
||||||
public void FlushPendingFilterOperations()
|
public void FlushPendingFilterOperations()
|
||||||
{
|
{
|
||||||
@ -641,11 +641,11 @@ namespace osu.Game.Screens.Select
|
|||||||
case DrawableCarouselBeatmap beatmap:
|
case DrawableCarouselBeatmap beatmap:
|
||||||
{
|
{
|
||||||
if (beatmap.Item.State.Value == CarouselItemState.Selected)
|
if (beatmap.Item.State.Value == CarouselItemState.Selected)
|
||||||
// scroll position at currentY makes the set panel appear at the very top of the carousel in screen space
|
// scroll position at currentY makes the set panel appear at the very top of the carousel's screen space
|
||||||
// move down by half of parent height (which is the height of the carousel's visible extent, including semi-transparent areas)
|
// move down by half of visible height (height of the carousel's visible extent, including semi-transparent areas)
|
||||||
// then reapply parent's padding from the top by adding it
|
// then reapply the top semi-transparent area (because carousel's screen space starts below it)
|
||||||
// and finally add half of the panel's own height to achieve vertical centering of the panel itself
|
// and finally add half of the panel's own height to achieve vertical centering of the panel itself
|
||||||
scrollTarget = currentY - Parent.DrawHeight / 2 + Parent.Padding.Top + beatmap.DrawHeight / 2;
|
scrollTarget = currentY - visibleHalfHeight + BleedTop + beatmap.DrawHeight / 2;
|
||||||
|
|
||||||
void performMove(float y, float? startY = null)
|
void performMove(float y, float? startY = null)
|
||||||
{
|
{
|
||||||
|
@ -153,6 +153,8 @@ namespace osu.Game.Screens.Select
|
|||||||
Anchor = Anchor.CentreRight,
|
Anchor = Anchor.CentreRight,
|
||||||
Origin = Anchor.CentreRight,
|
Origin = Anchor.CentreRight,
|
||||||
RelativeSizeAxes = Axes.Both,
|
RelativeSizeAxes = Axes.Both,
|
||||||
|
BleedTop = FilterControl.HEIGHT,
|
||||||
|
BleedBottom = Footer.HEIGHT,
|
||||||
SelectionChanged = updateSelectedBeatmap,
|
SelectionChanged = updateSelectedBeatmap,
|
||||||
BeatmapSetsChanged = carouselBeatmapsLoaded,
|
BeatmapSetsChanged = carouselBeatmapsLoaded,
|
||||||
GetRecommendedBeatmap = recommender.GetRecommendedBeatmap,
|
GetRecommendedBeatmap = recommender.GetRecommendedBeatmap,
|
||||||
|
Loading…
Reference in New Issue
Block a user