From 7d1473c5d0d2c3a2ba2f7467cbd5d06069b01ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Thu, 19 Dec 2024 14:52:27 +0100 Subject: [PATCH] Simplify expand/contract code --- osu.Game/Screens/Play/HUD/ModDisplay.cs | 47 ++++++++++++------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/osu.Game/Screens/Play/HUD/ModDisplay.cs b/osu.Game/Screens/Play/HUD/ModDisplay.cs index 9f42175a70..38417fae04 100644 --- a/osu.Game/Screens/Play/HUD/ModDisplay.cs +++ b/osu.Game/Screens/Play/HUD/ModDisplay.cs @@ -33,12 +33,7 @@ namespace osu.Game.Screens.Play.HUD expansionMode = value; if (IsLoaded) - { - if (expansionMode == ExpansionMode.AlwaysExpanded || (expansionMode == ExpansionMode.ExpandOnHover && IsHovered)) - expand(); - else if (expansionMode == ExpansionMode.AlwaysContracted || (expansionMode == ExpansionMode.ExpandOnHover && !IsHovered)) - contract(); - } + updateExpansionMode(); } } @@ -88,24 +83,7 @@ namespace osu.Game.Screens.Play.HUD base.LoadComplete(); Current.BindValueChanged(updateDisplay, true); - - switch (expansionMode) - { - case ExpansionMode.AlwaysExpanded: - expand(0); - break; - - case ExpansionMode.AlwaysContracted: - contract(0); - break; - - case ExpansionMode.ExpandOnHover: - if (IsHovered) - expand(0); - else - contract(0); - break; - } + updateExpansionMode(0); } private void updateDisplay(ValueChangedEvent> mods) @@ -116,6 +94,27 @@ namespace osu.Game.Screens.Play.HUD iconsContainer.Add(new ModIcon(mod, showExtendedInformation: showExtendedInformation) { Scale = new Vector2(0.6f) }); } + private void updateExpansionMode(double duration = 500) + { + switch (expansionMode) + { + case ExpansionMode.AlwaysExpanded: + expand(duration); + break; + + case ExpansionMode.AlwaysContracted: + contract(duration); + break; + + case ExpansionMode.ExpandOnHover: + if (IsHovered) + expand(duration); + else + contract(duration); + break; + } + } + private void expand(double duration = 500) { if (ExpansionMode != ExpansionMode.AlwaysContracted)