diff --git a/OpenRA.Mods.Common/Widgets/ColorBlockWidget.cs b/OpenRA.Mods.Common/Widgets/ColorBlockWidget.cs index cbd11341da..8bcad45b11 100644 --- a/OpenRA.Mods.Common/Widgets/ColorBlockWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ColorBlockWidget.cs @@ -21,16 +21,23 @@ namespace OpenRA.Mods.Common.Widgets public Func GetColor; public Action OnMouseDown = _ => { }; public Action 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; diff --git a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs index 7254dce883..35d0bc8275 100644 --- a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs @@ -19,6 +19,10 @@ namespace OpenRA.Mods.Common.Widgets { public class ColorMixerWidget : Widget { + readonly Ruleset modRules; + + public string ClickSound = ChromeMetrics.Get("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: diff --git a/mods/cnc/chrome/color-picker.yaml b/mods/cnc/chrome/color-picker.yaml index 8cde79fc52..0ef367706f 100644 --- a/mods/cnc/chrome/color-picker.yaml +++ b/mods/cnc/chrome/color-picker.yaml @@ -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 diff --git a/mods/common/chrome/color-picker.yaml b/mods/common/chrome/color-picker.yaml index 9e66a9b799..346ee832f8 100644 --- a/mods/common/chrome/color-picker.yaml +++ b/mods/common/chrome/color-picker.yaml @@ -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 diff --git a/mods/ts/chrome/color-picker.yaml b/mods/ts/chrome/color-picker.yaml index a59d1c15b4..92eb54f768 100644 --- a/mods/ts/chrome/color-picker.yaml +++ b/mods/ts/chrome/color-picker.yaml @@ -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