Add click sounds to color widgets.

This commit is contained in:
Paul Chote
2021-07-03 15:16:54 +01:00
committed by Smittytron
parent bc51461427
commit f9b058d36b
5 changed files with 27 additions and 2 deletions

View File

@@ -21,16 +21,23 @@ namespace OpenRA.Mods.Common.Widgets
public Func<Color> GetColor;
public Action<MouseInput> OnMouseDown = _ => { };
public Action<MouseInput> OnMouseUp = _ => { };
public string ClickSound = null;
public ColorBlockWidget()
readonly Ruleset modRules;
[ObjectCreator.UseCtor]
public ColorBlockWidget(ModData modData)
{
modRules = modData.DefaultRules;
GetColor = () => Color;
}
protected ColorBlockWidget(ColorBlockWidget widget)
: base(widget)
{
modRules = widget.modRules;
GetColor = widget.GetColor;
ClickSound = widget.ClickSound;
}
public override Widget Clone()
@@ -63,6 +70,8 @@ namespace OpenRA.Mods.Common.Widgets
{
// OnMouseDown returns false if the button shouldn't be pressed
OnMouseDown(mi);
Game.Sound.PlayNotification(modRules, null, "Sounds", ClickSound, null);
}
return false;

View File

@@ -19,6 +19,10 @@ namespace OpenRA.Mods.Common.Widgets
{
public class ColorMixerWidget : Widget
{
readonly Ruleset modRules;
public string ClickSound = ChromeMetrics.Get<string>("ClickSound");
public event Action OnChange = () => { };
public float H { get; private set; }
@@ -30,14 +34,18 @@ namespace OpenRA.Mods.Common.Widgets
Sprite mixerSprite;
bool isMoving;
public ColorMixerWidget()
[ObjectCreator.UseCtor]
public ColorMixerWidget(ModData modData)
{
modRules = modData.DefaultRules;
V = 1.0f;
}
public ColorMixerWidget(ColorMixerWidget other)
: base(other)
{
modRules = other.modRules;
ClickSound = other.ClickSound;
OnChange = other.OnChange;
H = other.H;
S = other.S;
@@ -126,6 +134,8 @@ namespace OpenRA.Mods.Common.Widgets
isMoving = true;
SetValueFromPx(mi.Location - RenderOrigin);
OnChange();
Game.Sound.PlayNotification(modRules, null, "Sounds", ClickSound, null);
break;
case MouseInputEvent.Move:

View File

@@ -98,6 +98,7 @@ Background@COLOR_CHOOSER:
Width: 27
Height: 27
Visible: false
ClickSound: ClickSound
Background@CUSTOM_HEADER:
Background: panel-black
Width: PARENT_RIGHT - 4
@@ -123,3 +124,4 @@ Background@COLOR_CHOOSER:
Width: 27
Height: 27
Visible: false
ClickSound: ClickSound

View File

@@ -92,6 +92,7 @@ Background@COLOR_CHOOSER:
Width: 29
Height: 29
Visible: false
ClickSound: ClickSound
Background@CUSTOM_HEADER:
Background: dialog2
Width: PARENT_RIGHT - 4
@@ -117,3 +118,4 @@ Background@COLOR_CHOOSER:
Width: 29
Height: 29
Visible: false
ClickSound: ClickSound

View File

@@ -93,6 +93,7 @@ Background@COLOR_CHOOSER:
Width: 29
Height: 29
Visible: false
ClickSound: ClickSound
Background@CUSTOM_HEADER:
Background: dialog2
Width: PARENT_RIGHT - 4
@@ -118,3 +119,4 @@ Background@COLOR_CHOOSER:
Width: 29
Height: 29
Visible: false
ClickSound: ClickSound