diff --git a/Filtration/Converters/DisabledDefaultSoundConverter.cs b/Filtration/Converters/DisabledDefaultSoundConverter.cs
new file mode 100644
index 0000000..e530c86
--- /dev/null
+++ b/Filtration/Converters/DisabledDefaultSoundConverter.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+using System.Windows.Media.Imaging;
+
+namespace Filtration.Converters
+{
+ public class DisabledDefaultSoundConverter : IValueConverter
+ {
+ private static readonly BitmapImage _soundIcon;
+ private static readonly BitmapImage _soundDDSIcon;
+
+ static DisabledDefaultSoundConverter()
+ {
+ var soundUri = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/sound.png", UriKind.Absolute);
+ var soundDDSUri = new Uri("pack://application:,,,/Filtration;component/Resources/Icons/sound_dds.png", UriKind.Absolute);
+ _soundIcon = new BitmapImage(soundUri);
+ _soundDDSIcon = new BitmapImage(soundDDSUri);
+ }
+
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (bool)value ? _soundDDSIcon : _soundIcon;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return ReferenceEquals(value, _soundDDSIcon);
+ }
+ }
+}
diff --git a/Filtration/Converters/DisabledDefaultSoundTooltipConverter.cs b/Filtration/Converters/DisabledDefaultSoundTooltipConverter.cs
new file mode 100644
index 0000000..caf72a4
--- /dev/null
+++ b/Filtration/Converters/DisabledDefaultSoundTooltipConverter.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace Filtration.Converters
+{
+ class DisabledDefaultSoundTooltipConverter : IMultiValueConverter
+ {
+ private static readonly string appendage = "\nNote: the default drop sound is disabled for this block.";
+
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (values[0] == DependencyProperty.UnsetValue ||
+ values[1] == DependencyProperty.UnsetValue)
+ {
+ return string.Empty;
+ }
+
+ var baseText = (string)(values[0]);
+ var hasDisabledDefaultSound = (bool)(values[1]);
+
+ if (hasDisabledDefaultSound)
+ {
+ return $"{baseText}{appendage}";
+ }
+ else
+ {
+ return baseText;
+ }
+ }
+
+ public object[] ConvertBack(object value, Type[] targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/Filtration/Filtration.csproj b/Filtration/Filtration.csproj
index 0a74b8a..3b30c9d 100644
--- a/Filtration/Filtration.csproj
+++ b/Filtration/Filtration.csproj
@@ -210,6 +210,8 @@
+
+
@@ -460,6 +462,7 @@
Settings.settings
True
+
@@ -504,7 +507,7 @@
-
+
diff --git a/Filtration/Resources/Icons/sound.png b/Filtration/Resources/Icons/sound.png
new file mode 100644
index 0000000..53959cb
Binary files /dev/null and b/Filtration/Resources/Icons/sound.png differ
diff --git a/Filtration/Resources/Icons/sound_dds.png b/Filtration/Resources/Icons/sound_dds.png
new file mode 100644
index 0000000..fd5ab7e
Binary files /dev/null and b/Filtration/Resources/Icons/sound_dds.png differ
diff --git a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
index 5b6ff39..817a01d 100644
--- a/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/DesignTime/DesignTimeItemFilterBlockViewModel.cs
@@ -150,6 +150,7 @@ namespace Filtration.ViewModels.DesignTime
public bool HasSound { get; }
public bool HasPositionalSound { get; }
public bool HasCustomSound { get; }
+ public bool HasDisabledDefaultSound { get; }
public bool HasAudioVisualBlockItems { get; }
public void RefreshBlockPreview()
{
diff --git a/Filtration/ViewModels/ItemFilterBlockViewModel.cs b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
index 5403e5f..7fb9983 100644
--- a/Filtration/ViewModels/ItemFilterBlockViewModel.cs
+++ b/Filtration/ViewModels/ItemFilterBlockViewModel.cs
@@ -65,6 +65,7 @@ namespace Filtration.ViewModels
bool HasSound { get; }
bool HasPositionalSound { get; }
bool HasCustomSound { get; }
+ bool HasDisabledDefaultSound { get; }
bool HasAudioVisualBlockItems { get; }
void RefreshBlockPreview();
}
@@ -287,6 +288,7 @@ namespace Filtration.ViewModels
public bool HasSound => Block.HasBlockItemOfType();
public bool HasPositionalSound => Block.HasBlockItemOfType();
public bool HasCustomSound => Block.HasBlockItemOfType();
+ public bool HasDisabledDefaultSound => Block.HasBlockItemOfType();
public bool HasAudioVisualBlockItems => AudioVisualBlockItems.Any();
@@ -526,6 +528,7 @@ namespace Filtration.ViewModels
RaisePropertyChanged(nameof(HasSound));
RaisePropertyChanged(nameof(HasPositionalSound));
RaisePropertyChanged(nameof(HasCustomSound));
+ RaisePropertyChanged(nameof(HasDisabledDefaultSound));
}
private void OnBlockItemsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
diff --git a/Filtration/Views/IconsDictionary.xaml b/Filtration/Views/IconsDictionary.xaml
index 99b4398..1f678e0 100644
--- a/Filtration/Views/IconsDictionary.xaml
+++ b/Filtration/Views/IconsDictionary.xaml
@@ -11,7 +11,6 @@
-
@@ -37,4 +36,4 @@
-
\ No newline at end of file
+
diff --git a/Filtration/Views/ItemFilterBlockView.xaml b/Filtration/Views/ItemFilterBlockView.xaml
index 5b84db6..ab0bdb4 100644
--- a/Filtration/Views/ItemFilterBlockView.xaml
+++ b/Filtration/Views/ItemFilterBlockView.xaml
@@ -1,7 +1,7 @@
@@ -18,6 +18,8 @@
+
+