Add sounds to multiplayer games list

This commit is contained in:
Jamie Taylor
2021-08-06 23:30:12 +09:00
parent 3f06ecdd48
commit 5031b19b42

View File

@ -5,6 +5,8 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using osu.Framework; using osu.Framework;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Audio;
using osu.Framework.Audio.Sample;
using osu.Framework.Bindables; using osu.Framework.Bindables;
using osu.Framework.Extensions; using osu.Framework.Extensions;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
@ -44,6 +46,8 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
public event Action<SelectionState> StateChanged; public event Action<SelectionState> StateChanged;
protected override HoverSounds CreateHoverSounds(HoverSampleSet sampleSet) => new HoverSounds();
private readonly Box selectionBox; private readonly Box selectionBox;
[Resolved(canBeNull: true)] [Resolved(canBeNull: true)]
@ -62,6 +66,9 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
private SelectionState state; private SelectionState state;
private Sample sampleSelect;
private Sample sampleJoin;
public SelectionState State public SelectionState State
{ {
get => state; get => state;
@ -125,7 +132,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuColour colours) private void load(OsuColour colours, AudioManager audio)
{ {
float stripWidth = side_strip_width * (Room.Category.Value == RoomCategory.Spotlight ? 2 : 1); float stripWidth = side_strip_width * (Room.Category.Value == RoomCategory.Spotlight ? 2 : 1);
@ -221,6 +228,9 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
}, },
}, },
}; };
sampleSelect = audio.Samples.Get($@"UI/{HoverSampleSet.Default.GetDescription()}-select");
sampleJoin = audio.Samples.Get($@"UI/{HoverSampleSet.Submit.GetDescription()}-select");
} }
protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent) protected override IReadOnlyDependencyContainer CreateChildDependencies(IReadOnlyDependencyContainer parent)
@ -273,22 +283,25 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
{ {
} }
protected override bool ShouldBeConsideredForInput(Drawable child) => state == SelectionState.Selected; protected override bool ShouldBeConsideredForInput(Drawable child) => state == SelectionState.Selected || child is HoverSounds;
protected override bool OnClick(ClickEvent e) protected override bool OnClick(ClickEvent e)
{ {
if (Room != selectedRoom.Value) if (Room != selectedRoom.Value)
{ {
sampleSelect?.Play();
selectedRoom.Value = Room; selectedRoom.Value = Room;
return true; return true;
} }
if (Room.HasPassword.Value) if (Room.HasPassword.Value)
{ {
sampleJoin?.Play();
this.ShowPopover(); this.ShowPopover();
return true; return true;
} }
sampleJoin?.Play();
lounge?.Join(Room, null); lounge?.Join(Room, null);
return base.OnClick(e); return base.OnClick(e);