Add new filter fuatures
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
using System;
|
||||
using System.Windows.Media;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
using Filtration.ObjectModel.Extensions;
|
||||
using Filtration.ObjectModel.ThemeEditor;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemBaseTypes
|
||||
{
|
||||
public abstract class EffectColorBlockItem : BlockItemBase, IAudioVisualBlockItem, IBlockItemWithTheme
|
||||
{
|
||||
private EffectColor _color;
|
||||
private bool _temporary;
|
||||
private ThemeComponent _themeComponent;
|
||||
|
||||
protected EffectColorBlockItem()
|
||||
{
|
||||
}
|
||||
|
||||
protected EffectColorBlockItem(EffectColor color, bool temporary)
|
||||
{
|
||||
Color = color;
|
||||
Temporary = temporary;
|
||||
}
|
||||
|
||||
public override string OutputText => PrefixText + " " + Color.GetAttributeDescription() +
|
||||
(Temporary ? " " + "Temp" : string.Empty) +
|
||||
(ThemeComponent != null ? " # " + ThemeComponent.ComponentName : string.Empty);
|
||||
|
||||
public override string SummaryText => string.Empty;
|
||||
|
||||
public ThemeComponent ThemeComponent
|
||||
{
|
||||
get { return _themeComponent; }
|
||||
set
|
||||
{
|
||||
if (_themeComponent == value) { return; }
|
||||
|
||||
if (_themeComponent != null)
|
||||
{
|
||||
_themeComponent.ThemeComponentUpdated -= OnThemeComponentUpdated;
|
||||
_themeComponent.ThemeComponentDeleted -= OnThemeComponentDeleted;
|
||||
}
|
||||
if (value != null)
|
||||
{
|
||||
value.ThemeComponentUpdated += OnThemeComponentUpdated;
|
||||
value.ThemeComponentDeleted += OnThemeComponentDeleted;
|
||||
}
|
||||
|
||||
_themeComponent = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.Transparent;
|
||||
public override Color SummaryTextColor => Colors.Transparent;
|
||||
|
||||
public EffectColor Color
|
||||
{
|
||||
get { return _color; }
|
||||
set
|
||||
{
|
||||
_color = value;
|
||||
IsDirty = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public bool Temporary
|
||||
{
|
||||
get { return _temporary; }
|
||||
set
|
||||
{
|
||||
_temporary = value;
|
||||
IsDirty = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnThemeComponentUpdated(object sender, EventArgs e)
|
||||
{
|
||||
Color = ((EffectColorThemeComponent)sender).EffectColor;
|
||||
Temporary = ((EffectColorThemeComponent)sender).Temporary;
|
||||
}
|
||||
|
||||
private void OnThemeComponentDeleted(object sender, EventArgs e)
|
||||
{
|
||||
ThemeComponent = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
103
Filtration.ObjectModel/BlockItemBaseTypes/IconBlockItem.cs
Normal file
103
Filtration.ObjectModel/BlockItemBaseTypes/IconBlockItem.cs
Normal file
@@ -0,0 +1,103 @@
|
||||
using System;
|
||||
using System.Windows.Media;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
using Filtration.ObjectModel.Extensions;
|
||||
using Filtration.ObjectModel.ThemeEditor;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemBaseTypes
|
||||
{
|
||||
public abstract class IconBlockItem : BlockItemBase, IAudioVisualBlockItem, IBlockItemWithTheme
|
||||
{
|
||||
private IconSize _size;
|
||||
private IconColor _color;
|
||||
private IconShape _shape;
|
||||
private ThemeComponent _themeComponent;
|
||||
|
||||
protected IconBlockItem()
|
||||
{
|
||||
}
|
||||
|
||||
protected IconBlockItem(IconSize size, IconColor color, IconShape shape)
|
||||
{
|
||||
Size = size;
|
||||
Color = color;
|
||||
Shape = shape;
|
||||
}
|
||||
|
||||
public override string OutputText => PrefixText + " " + (int)Size + " " + Color.GetAttributeDescription() + " " + Shape.GetAttributeDescription() +
|
||||
(ThemeComponent != null ? " # " + ThemeComponent.ComponentName : string.Empty);
|
||||
|
||||
public override string SummaryText => string.Empty;
|
||||
|
||||
public ThemeComponent ThemeComponent
|
||||
{
|
||||
get { return _themeComponent; }
|
||||
set
|
||||
{
|
||||
if (_themeComponent == value) { return; }
|
||||
|
||||
if (_themeComponent != null)
|
||||
{
|
||||
_themeComponent.ThemeComponentUpdated -= OnThemeComponentUpdated;
|
||||
_themeComponent.ThemeComponentDeleted -= OnThemeComponentDeleted;
|
||||
}
|
||||
if (value != null)
|
||||
{
|
||||
value.ThemeComponentUpdated += OnThemeComponentUpdated;
|
||||
value.ThemeComponentDeleted += OnThemeComponentDeleted;
|
||||
}
|
||||
|
||||
_themeComponent = value;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.Transparent;
|
||||
public override Color SummaryTextColor => Colors.Transparent;
|
||||
|
||||
public IconSize Size
|
||||
{
|
||||
get { return _size; }
|
||||
set
|
||||
{
|
||||
_size = value;
|
||||
IsDirty = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public IconColor Color
|
||||
{
|
||||
get { return _color; }
|
||||
set
|
||||
{
|
||||
_color = value;
|
||||
IsDirty = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public IconShape Shape
|
||||
{
|
||||
get { return _shape; }
|
||||
set
|
||||
{
|
||||
_shape = value;
|
||||
IsDirty = true;
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnThemeComponentUpdated(object sender, EventArgs e)
|
||||
{
|
||||
Size = ((IconThemeComponent)sender).IconSize;
|
||||
Color = ((IconThemeComponent)sender).IconColor;
|
||||
Shape = ((IconThemeComponent)sender).IconShape;
|
||||
}
|
||||
|
||||
private void OnThemeComponentDeleted(object sender, EventArgs e)
|
||||
{
|
||||
ThemeComponent = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "SetBackgroundColor";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Background Color";
|
||||
public override int SortOrder => 22;
|
||||
public override int SortOrder => 23;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.MediumTurquoise;
|
||||
public override Color SummaryTextColor => Colors.Black;
|
||||
public override int SortOrder => 19;
|
||||
public override int SortOrder => 20;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
using System.Windows.Media;
|
||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemTypes
|
||||
{
|
||||
public class BeamBlockItem : ColorBooleanBlockItem
|
||||
{
|
||||
public BeamBlockItem()
|
||||
{
|
||||
}
|
||||
|
||||
public BeamBlockItem(Color color, bool booleanValue) : base(color, booleanValue)
|
||||
{
|
||||
}
|
||||
|
||||
public override string PrefixText => "BeamColor";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Beam Color";
|
||||
public override int SortOrder => 29;
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "SetBorderColor";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Border Color";
|
||||
public override int SortOrder => 23;
|
||||
public override int SortOrder => 24;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.MediumSeaGreen;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 18;
|
||||
public override int SortOrder => 19;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "CustomAlertSound";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Custom Alert Sound";
|
||||
public override int SortOrder => 30;
|
||||
public override int SortOrder => 31;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string DisplayHeading => "Disable Drop Sound";
|
||||
public override Color SummaryBackgroundColor => Colors.Transparent;
|
||||
public override Color SummaryTextColor => Colors.Transparent;
|
||||
public override int SortOrder => 27;
|
||||
public override int SortOrder => 28;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Drop Level " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.DodgerBlue;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 14;
|
||||
public override int SortOrder => 15;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 100;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string DisplayHeading => "Elder Map";
|
||||
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 9;
|
||||
public override int SortOrder => 10;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "SetFontSize";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Font Size";
|
||||
public override int SortOrder => 24;
|
||||
public override int SortOrder => 25;
|
||||
public override int Minimum => 11;
|
||||
public override int Maximum => 45;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Gem Level " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 15;
|
||||
public override int SortOrder => 16;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 21;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.MidnightBlue;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 20;
|
||||
public override int SortOrder => 21;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Height " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.LightBlue;
|
||||
public override Color SummaryTextColor => Colors.Black;
|
||||
public override int SortOrder => 11;
|
||||
public override int SortOrder => 12;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 6;
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemTypes
|
||||
{
|
||||
public class IconBlockItem : StringBlockItem
|
||||
{
|
||||
public IconBlockItem()
|
||||
{
|
||||
Value = "Icon1";
|
||||
}
|
||||
|
||||
public IconBlockItem(string value) : base(value)
|
||||
{
|
||||
}
|
||||
|
||||
public override string PrefixText => "Icon";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Drop Icon";
|
||||
public override int SortOrder => 28;
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Item Level " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 13;
|
||||
public override int SortOrder => 14;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 100;
|
||||
}
|
||||
|
||||
24
Filtration.ObjectModel/BlockItemTypes/MapIconBlockItem.cs
Normal file
24
Filtration.ObjectModel/BlockItemTypes/MapIconBlockItem.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemTypes
|
||||
{
|
||||
public class MapIconBlockItem : IconBlockItem
|
||||
{
|
||||
public MapIconBlockItem()
|
||||
{
|
||||
Size = IconSize.Largest;
|
||||
Color = IconColor.Red;
|
||||
Shape = IconShape.Circle;
|
||||
}
|
||||
|
||||
public MapIconBlockItem(IconSize size, IconColor iconColor, IconShape iconShape) : base(size, iconColor, iconShape)
|
||||
{
|
||||
}
|
||||
|
||||
public override string PrefixText => "MinimapIcon";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Minimap Icon";
|
||||
public override int SortOrder => 29;
|
||||
}
|
||||
}
|
||||
18
Filtration.ObjectModel/BlockItemTypes/MapTierBlockItem.cs
Normal file
18
Filtration.ObjectModel/BlockItemTypes/MapTierBlockItem.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System.Windows.Media;
|
||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemTypes
|
||||
{
|
||||
public class MapTierBlockItem : NumericFilterPredicateBlockItem
|
||||
{
|
||||
public override string PrefixText => "MapTier";
|
||||
public override int MaximumAllowed => 2;
|
||||
public override string DisplayHeading => "Map Tier";
|
||||
public override string SummaryText => "Map Tier " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 8;
|
||||
public override int Minimum => 1;
|
||||
public override int Maximum => 16;
|
||||
}
|
||||
}
|
||||
23
Filtration.ObjectModel/BlockItemTypes/PlayEffectBlockItem.cs
Normal file
23
Filtration.ObjectModel/BlockItemTypes/PlayEffectBlockItem.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
|
||||
namespace Filtration.ObjectModel.BlockItemTypes
|
||||
{
|
||||
public class PlayEffectBlockItem : EffectColorBlockItem
|
||||
{
|
||||
public PlayEffectBlockItem()
|
||||
{
|
||||
Color = EffectColor.Red;
|
||||
Temporary = false;
|
||||
}
|
||||
|
||||
public PlayEffectBlockItem(EffectColor effectColor, bool temporary) : base(effectColor, temporary)
|
||||
{
|
||||
}
|
||||
|
||||
public override string PrefixText => "PlayEffect";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Play Effect";
|
||||
public override int SortOrder => 30;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "PlayAlertSoundPositional";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Play Positional Alert Sound";
|
||||
public override int SortOrder => 26;
|
||||
public override int SortOrder => 27;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
((ItemRarity) FilterPredicate.PredicateOperand).GetAttributeDescription();
|
||||
public override Color SummaryBackgroundColor => Colors.LightCoral;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 17;
|
||||
public override int SortOrder => 18;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => (int)ItemRarity.Unique;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string DisplayHeading => "Shaped Map";
|
||||
public override Color SummaryBackgroundColor => Colors.DarkGoldenrod;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 8;
|
||||
public override int SortOrder => 9;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
|
||||
public override Color SummaryBackgroundColor => Colors.GhostWhite;
|
||||
public override Color SummaryTextColor => Colors.Black;
|
||||
public override int SortOrder => 10;
|
||||
public override int SortOrder => 11;
|
||||
|
||||
private SocketColor StringToSocketColor(char socketColorString)
|
||||
{
|
||||
|
||||
@@ -17,6 +17,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "PlayAlertSound";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Play Alert Sound";
|
||||
public override int SortOrder => 25;
|
||||
public override int SortOrder => 26;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Stack Size " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.DarkSlateGray;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 16;
|
||||
public override int SortOrder => 17;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 1000;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,6 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string PrefixText => "SetTextColor";
|
||||
public override int MaximumAllowed => 1;
|
||||
public override string DisplayHeading => "Text Color";
|
||||
public override int SortOrder => 21;
|
||||
public override int SortOrder => 22;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Filtration.ObjectModel.BlockItemTypes
|
||||
public override string SummaryText => "Width " + FilterPredicate;
|
||||
public override Color SummaryBackgroundColor => Colors.MediumPurple;
|
||||
public override Color SummaryTextColor => Colors.White;
|
||||
public override int SortOrder => 12;
|
||||
public override int SortOrder => 13;
|
||||
public override int Minimum => 0;
|
||||
public override int Maximum => 2;
|
||||
}
|
||||
|
||||
20
Filtration.ObjectModel/Enums/EffectColor.cs
Normal file
20
Filtration.ObjectModel/Enums/EffectColor.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Filtration.ObjectModel.Enums
|
||||
{
|
||||
public enum EffectColor
|
||||
{
|
||||
[Description("Red")]
|
||||
Red,
|
||||
[Description("Green")]
|
||||
Green,
|
||||
[Description("Blue")]
|
||||
Blue,
|
||||
[Description("Brown")]
|
||||
Brown,
|
||||
[Description("White")]
|
||||
White,
|
||||
[Description("Yellow")]
|
||||
Yellow
|
||||
}
|
||||
}
|
||||
20
Filtration.ObjectModel/Enums/IconColor.cs
Normal file
20
Filtration.ObjectModel/Enums/IconColor.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Filtration.ObjectModel.Enums
|
||||
{
|
||||
public enum IconColor
|
||||
{
|
||||
[Description("Red")]
|
||||
Red,
|
||||
[Description("Green")]
|
||||
Green,
|
||||
[Description("Blue")]
|
||||
Blue,
|
||||
[Description("Brown")]
|
||||
Brown,
|
||||
[Description("White")]
|
||||
White,
|
||||
[Description("Yellow")]
|
||||
Yellow
|
||||
}
|
||||
}
|
||||
20
Filtration.ObjectModel/Enums/IconShape.cs
Normal file
20
Filtration.ObjectModel/Enums/IconShape.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Filtration.ObjectModel.Enums
|
||||
{
|
||||
public enum IconShape
|
||||
{
|
||||
[Description("Circle")]
|
||||
Circle,
|
||||
[Description("Diamond")]
|
||||
Diamond,
|
||||
[Description("Hexagon")]
|
||||
Hexagon,
|
||||
[Description("Square")]
|
||||
Square,
|
||||
[Description("Star")]
|
||||
Star,
|
||||
[Description("Triangle")]
|
||||
Triangle
|
||||
}
|
||||
}
|
||||
14
Filtration.ObjectModel/Enums/IconSize.cs
Normal file
14
Filtration.ObjectModel/Enums/IconSize.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Filtration.ObjectModel.Enums
|
||||
{
|
||||
public enum IconSize
|
||||
{
|
||||
[Description("Largest")]
|
||||
Largest,
|
||||
[Description("Medium")]
|
||||
Medium,
|
||||
[Description("Small")]
|
||||
Small
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,10 @@ namespace Filtration.ObjectModel.Enums
|
||||
[Description("Alert Sound")]
|
||||
AlertSound,
|
||||
[Description("Custom Sound")]
|
||||
CustomSound
|
||||
CustomSound,
|
||||
[Description("Icon")]
|
||||
Icon,
|
||||
[Description("Effect")]
|
||||
Effect
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
<Compile Include="BlockItemBaseTypes\ColorBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\ColorBooleanBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\DualIntegerBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\EffectColorBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\IconBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\StringBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\StrIntBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
||||
@@ -77,7 +79,8 @@
|
||||
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BeamBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ClassBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\CustomSoundBlockItem.cs" />
|
||||
@@ -85,7 +88,7 @@
|
||||
<Compile Include="BlockItemTypes\ElderMapBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\GemLevelBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\HasExplicitModBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\IconBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
||||
@@ -122,8 +125,12 @@
|
||||
<Compile Include="Commands\IUndoableCommand.cs" />
|
||||
<Compile Include="Enums\BlockAction.cs" />
|
||||
<Compile Include="Enums\BlockItemType.cs" />
|
||||
<Compile Include="Enums\EffectColor.cs" />
|
||||
<Compile Include="Enums\FilterPredicateOperator.cs" />
|
||||
<Compile Include="Enums\FilterType.cs" />
|
||||
<Compile Include="Enums\IconColor.cs" />
|
||||
<Compile Include="Enums\IconShape.cs" />
|
||||
<Compile Include="Enums\IconSize.cs" />
|
||||
<Compile Include="Enums\ItemRarity.cs" />
|
||||
<Compile Include="Enums\SocketColor.cs" />
|
||||
<Compile Include="Enums\ThemeComponentType.cs" />
|
||||
@@ -148,6 +155,8 @@
|
||||
<Compile Include="ReplaceColorsParameterSet.cs" />
|
||||
<Compile Include="Socket.cs" />
|
||||
<Compile Include="SocketGroup.cs" />
|
||||
<Compile Include="ThemeEditor\EffectColorThemeComponent.cs" />
|
||||
<Compile Include="ThemeEditor\IconThemeComponent.cs" />
|
||||
<Compile Include="ThemeEditor\StringThemeComponent.cs" />
|
||||
<Compile Include="ThemeEditor\StrIntThemeComponent.cs" />
|
||||
<Compile Include="ThemeEditor\IntegerThemeComponent.cs" />
|
||||
|
||||
@@ -23,8 +23,10 @@ namespace Filtration.ObjectModel
|
||||
Color DisplayTextColor { get; }
|
||||
Color DisplayBorderColor { get; }
|
||||
double DisplayFontSize { get; }
|
||||
string DisplayIcon { get; }
|
||||
Color DisplayBeamColor { get; }
|
||||
int DisplayIconSize { get; }
|
||||
int DisplayIconColor { get; }
|
||||
int DisplayIconShape { get; }
|
||||
Color DisplayEffectColor { get; }
|
||||
bool HasBlockItemOfType<T>();
|
||||
bool HasBlockGroupInParentHierarchy(ItemFilterBlockGroup targetBlockGroup, ItemFilterBlockGroup startingBlockGroup);
|
||||
}
|
||||
@@ -263,21 +265,68 @@ namespace Filtration.ObjectModel
|
||||
}
|
||||
}
|
||||
|
||||
public string DisplayIcon
|
||||
public int DisplayIconSize
|
||||
{
|
||||
get
|
||||
{
|
||||
var displayIcon = BlockItems.OfType<IconBlockItem>().FirstOrDefault();
|
||||
return (displayIcon != null) ? displayIcon.Value : "";
|
||||
var mapIconBlockItem = BlockItems.OfType<MapIconBlockItem>().FirstOrDefault();
|
||||
if (mapIconBlockItem != null)
|
||||
return (int)mapIconBlockItem.Size;
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public Color DisplayBeamColor
|
||||
public int DisplayIconColor
|
||||
{
|
||||
get
|
||||
{
|
||||
var beamBlockItem = BlockItems.OfType<BeamBlockItem>().FirstOrDefault();
|
||||
return beamBlockItem?.Color ?? new Color { A = 0, R = 0, G = 0, B = 0 };
|
||||
var mapIconBlockItem = BlockItems.OfType<MapIconBlockItem>().FirstOrDefault();
|
||||
if (mapIconBlockItem != null)
|
||||
return (int)mapIconBlockItem.Color;
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public int DisplayIconShape
|
||||
{
|
||||
get
|
||||
{
|
||||
var mapIconBlockItem = BlockItems.OfType<MapIconBlockItem>().FirstOrDefault();
|
||||
if (mapIconBlockItem != null)
|
||||
return (int)mapIconBlockItem.Shape;
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public Color DisplayEffectColor
|
||||
{
|
||||
get
|
||||
{
|
||||
var beamBlockItem = BlockItems.OfType<PlayEffectBlockItem>().FirstOrDefault();
|
||||
|
||||
if (beamBlockItem != null)
|
||||
{
|
||||
switch (beamBlockItem.Color)
|
||||
{
|
||||
case EffectColor.Red:
|
||||
return Colors.Red;
|
||||
case EffectColor.Green:
|
||||
return Colors.Green;
|
||||
case EffectColor.Blue:
|
||||
return Colors.Blue;
|
||||
case EffectColor.Brown:
|
||||
return Colors.Brown;
|
||||
case EffectColor.White:
|
||||
return Colors.White;
|
||||
case EffectColor.Yellow:
|
||||
return Colors.Yellow;
|
||||
}
|
||||
}
|
||||
|
||||
return Colors.Transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
using System;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
|
||||
namespace Filtration.ObjectModel.ThemeEditor
|
||||
{
|
||||
[Serializable]
|
||||
public class EffectColorThemeComponent : ThemeComponent
|
||||
{
|
||||
private EffectColor _effectColor;
|
||||
private bool _temporary;
|
||||
|
||||
public EffectColorThemeComponent(ThemeComponentType componentType, string componentName, EffectColor componentEffectColor, bool componentTemporary)
|
||||
{
|
||||
if (componentName == null)
|
||||
{
|
||||
throw new ArgumentException("Null parameters not allowed in EffectColorThemeComponent constructor");
|
||||
}
|
||||
|
||||
ComponentType = componentType;
|
||||
ComponentName = componentName;
|
||||
EffectColor = componentEffectColor;
|
||||
Temporary = componentTemporary;
|
||||
}
|
||||
|
||||
public EffectColor EffectColor
|
||||
{
|
||||
get { return _effectColor; }
|
||||
set
|
||||
{
|
||||
_effectColor = value;
|
||||
OnPropertyChanged();
|
||||
_themeComponentUpdatedEventHandler?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
public bool Temporary
|
||||
{
|
||||
get { return _temporary; }
|
||||
set
|
||||
{
|
||||
_temporary = value;
|
||||
OnPropertyChanged();
|
||||
_themeComponentUpdatedEventHandler?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Filtration.ObjectModel/ThemeEditor/IconThemeComponent.cs
Normal file
60
Filtration.ObjectModel/ThemeEditor/IconThemeComponent.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
|
||||
namespace Filtration.ObjectModel.ThemeEditor
|
||||
{
|
||||
[Serializable]
|
||||
public class IconThemeComponent : ThemeComponent
|
||||
{
|
||||
private IconSize _iconSize;
|
||||
private IconColor _iconColor;
|
||||
private IconShape _iconShape;
|
||||
|
||||
public IconThemeComponent(ThemeComponentType componentType, string componentName, IconSize componentIconSize, IconColor componentIconColor, IconShape componentIconShape)
|
||||
{
|
||||
if (componentName == null)
|
||||
{
|
||||
throw new ArgumentException("Null parameters not allowed in IconThemeComponent constructor");
|
||||
}
|
||||
|
||||
ComponentType = componentType;
|
||||
ComponentName = componentName;
|
||||
IconSize = componentIconSize;
|
||||
IconColor = componentIconColor;
|
||||
IconShape = componentIconShape;
|
||||
}
|
||||
|
||||
public IconSize IconSize
|
||||
{
|
||||
get { return _iconSize; }
|
||||
set
|
||||
{
|
||||
_iconSize = value;
|
||||
OnPropertyChanged();
|
||||
_themeComponentUpdatedEventHandler?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
public IconColor IconColor
|
||||
{
|
||||
get { return _iconColor; }
|
||||
set
|
||||
{
|
||||
_iconColor = value;
|
||||
OnPropertyChanged();
|
||||
_themeComponentUpdatedEventHandler?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
public IconShape IconShape
|
||||
{
|
||||
get { return _iconShape; }
|
||||
set
|
||||
{
|
||||
_iconShape = value;
|
||||
OnPropertyChanged();
|
||||
_themeComponentUpdatedEventHandler?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,6 +61,32 @@ namespace Filtration.ObjectModel.ThemeEditor
|
||||
return component;
|
||||
}
|
||||
|
||||
public ThemeComponent AddComponent(ThemeComponentType componentType, string componentName, IconSize componentIconSize, IconColor componentIconColor, IconShape componentIconShape)
|
||||
{
|
||||
if (ComponentExists(componentType, componentName))
|
||||
{
|
||||
return Items.FirstOrDefault(t => t.ComponentName == componentName && t.ComponentType == componentType);
|
||||
}
|
||||
|
||||
var component = new IconThemeComponent(componentType, componentName, componentIconSize, componentIconColor, componentIconShape);
|
||||
Items.Add(component);
|
||||
|
||||
return component;
|
||||
}
|
||||
|
||||
public ThemeComponent AddComponent(ThemeComponentType componentType, string componentName, EffectColor componentEffectColor, bool componentTemporary)
|
||||
{
|
||||
if (ComponentExists(componentType, componentName))
|
||||
{
|
||||
return Items.FirstOrDefault(t => t.ComponentName == componentName && t.ComponentType == componentType);
|
||||
}
|
||||
|
||||
var component = new EffectColorThemeComponent(componentType, componentName, componentEffectColor, componentTemporary);
|
||||
Items.Add(component);
|
||||
|
||||
return component;
|
||||
}
|
||||
|
||||
private bool ComponentExists(ThemeComponentType componentType, string componentName)
|
||||
{
|
||||
var componentCount =
|
||||
|
||||
Reference in New Issue
Block a user