Add new block types
This commit is contained in:
parent
444f09751a
commit
79a59b14ec
@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class AnyEnchantmentBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public AnyEnchantmentBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public AnyEnchantmentBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "AnyEnchantment";
|
||||||
|
public override string DisplayHeading => "Any Enchantment";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.YellowGreen;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.AnyEnchantment;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class FracturedItemBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public FracturedItemBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public FracturedItemBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "FracturedItem";
|
||||||
|
public override string DisplayHeading => "Fractured Item";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.Salmon;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.FracturedItem;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
using System.Linq;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public class HasEnchantmentBlockItem : StringListBlockItem
|
||||||
|
{
|
||||||
|
public override string PrefixText => "HasEnchantment";
|
||||||
|
public override int MaximumAllowed => 1;
|
||||||
|
public override string DisplayHeading => "Has Enchantment";
|
||||||
|
|
||||||
|
public override string SummaryText
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Items.Count > 0 && Items.Count < 4)
|
||||||
|
{
|
||||||
|
return "Enchantments: " +
|
||||||
|
Items.Aggregate(string.Empty, (current, i) => current + i + ", ").TrimEnd(' ').TrimEnd(',');
|
||||||
|
}
|
||||||
|
if (Items.Count >= 4)
|
||||||
|
{
|
||||||
|
var remaining = Items.Count - 3;
|
||||||
|
return "Enchantments: " + Items.Take(3)
|
||||||
|
.Aggregate(string.Empty, (current, i) => current + i + ", ")
|
||||||
|
.TrimEnd(' ')
|
||||||
|
.TrimEnd(',') + " (+" + remaining + " more)";
|
||||||
|
}
|
||||||
|
return "Enchantments: (none)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Color SummaryBackgroundColor => Colors.PaleGreen;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.HasEnchantment;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
using System.Windows.Media;
|
||||||
|
using Filtration.ObjectModel.BlockItemBaseTypes;
|
||||||
|
using Filtration.ObjectModel.Enums;
|
||||||
|
|
||||||
|
namespace Filtration.ObjectModel.BlockItemTypes
|
||||||
|
{
|
||||||
|
public sealed class SynthesisedItemBlockItem : BooleanBlockItem
|
||||||
|
{
|
||||||
|
public SynthesisedItemBlockItem()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public SynthesisedItemBlockItem(bool booleanValue) : base(booleanValue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string PrefixText => "SynthesisedItem";
|
||||||
|
public override string DisplayHeading => "Synthesised Item";
|
||||||
|
public override Color SummaryBackgroundColor => Colors.Salmon;
|
||||||
|
public override Color SummaryTextColor => Colors.Black;
|
||||||
|
public override BlockItemOrdering SortOrder => BlockItemOrdering.SynthesisedItem;
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,9 @@ namespace Filtration.ObjectModel.Enums
|
|||||||
Corrupted,
|
Corrupted,
|
||||||
ElderItem,
|
ElderItem,
|
||||||
ShaperItem,
|
ShaperItem,
|
||||||
|
SynthesisedItem,
|
||||||
|
FracturedItem,
|
||||||
|
AnyEnchantment,
|
||||||
MapTier,
|
MapTier,
|
||||||
ShapedMap,
|
ShapedMap,
|
||||||
ElderMap,
|
ElderMap,
|
||||||
@ -27,6 +30,7 @@ namespace Filtration.ObjectModel.Enums
|
|||||||
BaseType,
|
BaseType,
|
||||||
Prophecy,
|
Prophecy,
|
||||||
HasExplicitMod,
|
HasExplicitMod,
|
||||||
|
HasEnchantment,
|
||||||
SetTextColor,
|
SetTextColor,
|
||||||
SetBackgroundColor,
|
SetBackgroundColor,
|
||||||
SetBorderColor,
|
SetBorderColor,
|
||||||
|
@ -81,8 +81,11 @@
|
|||||||
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\NumericFilterPredicateBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\NumericFilterPredicateBlockItem.cs" />
|
||||||
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\AnyEnchantmentBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\FracturedItemBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\HasEnchantmentBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
||||||
@ -95,6 +98,7 @@
|
|||||||
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ProphecyBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ProphecyBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
||||||
|
<Compile Include="BlockItemTypes\SynthesisedItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
||||||
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
|
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
|
||||||
|
@ -184,6 +184,21 @@ namespace Filtration.Parser.Services
|
|||||||
AddBooleanItemToBlockItems<ShaperItemBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ShaperItemBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "SynthesisedItem":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<SynthesisedItemBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "FracturedItem":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<FracturedItemBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "AnyEnchantment":
|
||||||
|
{
|
||||||
|
AddBooleanItemToBlockItems<AnyEnchantmentBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "ShapedMap":
|
case "ShapedMap":
|
||||||
{
|
{
|
||||||
AddBooleanItemToBlockItems<ShapedMapBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ShapedMapBlockItem>(block, trimmedLine);
|
||||||
@ -317,6 +332,11 @@ namespace Filtration.Parser.Services
|
|||||||
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "HasEnchantment":
|
||||||
|
{
|
||||||
|
AddStringListItemToBlockItems<HasEnchantmentBlockItem>(block, trimmedLine);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "ElderMap":
|
case "ElderMap":
|
||||||
{
|
{
|
||||||
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
<DependentUpon>Settings.settings</DependentUpon>
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Resources\Enchantments.txt" />
|
||||||
<Resource Include="Resources\Icons\no_sound_dds_light.png" />
|
<Resource Include="Resources\Icons\no_sound_dds_light.png" />
|
||||||
<Resource Include="Resources\Icons\no_sound_dds.png" />
|
<Resource Include="Resources\Icons\no_sound_dds.png" />
|
||||||
<Resource Include="Resources\Icons\speaker_icon.png" />
|
<Resource Include="Resources\Icons\speaker_icon.png" />
|
||||||
|
13
Filtration/Properties/Resources.Designer.cs
generated
13
Filtration/Properties/Resources.Designer.cs
generated
@ -388,7 +388,18 @@ namespace Filtration.Properties {
|
|||||||
return ResourceManager.GetString("Prophecies", resourceCulture);
|
return ResourceManager.GetString("Prophecies", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Enchantment Decree of Force.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Enchantments
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ResourceManager.GetString("Enchantments", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
|
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -214,4 +214,7 @@
|
|||||||
<data name="Prophecies" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="Prophecies" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\Prophecies.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
<value>..\Resources\Prophecies.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Enchantments" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Enchantments.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
1
Filtration/Resources/Enchantments.txt
Normal file
1
Filtration/Resources/Enchantments.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Enchantment Decree of Force
|
@ -12,6 +12,7 @@ namespace Filtration.Services
|
|||||||
IEnumerable<string> ItemClasses { get; }
|
IEnumerable<string> ItemClasses { get; }
|
||||||
IEnumerable<string> ItemMods { get; }
|
IEnumerable<string> ItemMods { get; }
|
||||||
IEnumerable<string> Prophecies { get; }
|
IEnumerable<string> Prophecies { get; }
|
||||||
|
IEnumerable<string> Enchantments { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class StaticDataService : IStaticDataService
|
internal class StaticDataService : IStaticDataService
|
||||||
@ -29,12 +30,15 @@ namespace Filtration.Services
|
|||||||
|
|
||||||
public IEnumerable<string> Prophecies { get; private set; }
|
public IEnumerable<string> Prophecies { get; private set; }
|
||||||
|
|
||||||
|
public IEnumerable<string> Enchantments { get; private set; }
|
||||||
|
|
||||||
private void PopulateStaticData()
|
private void PopulateStaticData()
|
||||||
{
|
{
|
||||||
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
|
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
|
||||||
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
|
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
|
||||||
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).ToList();
|
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).ToList();
|
||||||
Prophecies = new LineReader(() => new StringReader(Resources.Prophecies)).ToList();
|
Prophecies = new LineReader(() => new StringReader(Resources.Prophecies)).ToList();
|
||||||
|
Enchantments = new LineReader(() => new StringReader(Resources.Enchantments)).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,6 +87,11 @@
|
|||||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteItemMods}" />
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteItemMods}" />
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
|
|
||||||
|
<!-- Enchantments Template -->
|
||||||
|
<DataTemplate DataType="{x:Type blockItemTypes:HasEnchantmentBlockItem}">
|
||||||
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" AutoCompleteItemsSource="{Binding ElementName=TopLevelGrid, Path=DataContext.AutocompleteEnchantments}" />
|
||||||
|
</DataTemplate>
|
||||||
|
|
||||||
<!-- Socket Groups Template -->
|
<!-- Socket Groups Template -->
|
||||||
<DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
|
<DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
|
||||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
||||||
|
@ -131,12 +131,16 @@ namespace Filtration.ViewModels.DesignTime
|
|||||||
typeof (CorruptedBlockItem),
|
typeof (CorruptedBlockItem),
|
||||||
typeof (ElderItemBlockItem),
|
typeof (ElderItemBlockItem),
|
||||||
typeof (ShaperItemBlockItem),
|
typeof (ShaperItemBlockItem),
|
||||||
|
typeof (SynthesisedItemBlockItem),
|
||||||
|
typeof (FracturedItemBlockItem),
|
||||||
|
typeof (AnyEnchantmentBlockItem),
|
||||||
typeof (MapTierBlockItem),
|
typeof (MapTierBlockItem),
|
||||||
typeof (ShapedMapBlockItem),
|
typeof (ShapedMapBlockItem),
|
||||||
typeof (ElderMapBlockItem),
|
typeof (ElderMapBlockItem),
|
||||||
typeof (GemLevelBlockItem),
|
typeof (GemLevelBlockItem),
|
||||||
typeof (StackSizeBlockItem),
|
typeof (StackSizeBlockItem),
|
||||||
typeof (HasExplicitModBlockItem)
|
typeof (HasExplicitModBlockItem),
|
||||||
|
typeof (HasEnchantmentBlockItem)
|
||||||
};
|
};
|
||||||
public List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
public List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
||||||
public Color DisplayTextColor => Colors.Red;
|
public Color DisplayTextColor => Colors.Red;
|
||||||
|
@ -208,6 +208,8 @@ namespace Filtration.ViewModels
|
|||||||
|
|
||||||
public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods;
|
public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods;
|
||||||
|
|
||||||
|
public IEnumerable<string> AutocompleteEnchantments => _staticDataService.Enchantments;
|
||||||
|
|
||||||
public List<Type> BlockItemTypesAvailable => new List<Type>
|
public List<Type> BlockItemTypesAvailable => new List<Type>
|
||||||
{
|
{
|
||||||
typeof (ItemLevelBlockItem),
|
typeof (ItemLevelBlockItem),
|
||||||
@ -226,12 +228,16 @@ namespace Filtration.ViewModels
|
|||||||
typeof (CorruptedBlockItem),
|
typeof (CorruptedBlockItem),
|
||||||
typeof (ElderItemBlockItem),
|
typeof (ElderItemBlockItem),
|
||||||
typeof (ShaperItemBlockItem),
|
typeof (ShaperItemBlockItem),
|
||||||
|
typeof (SynthesisedItemBlockItem),
|
||||||
|
typeof (FracturedItemBlockItem),
|
||||||
|
typeof (AnyEnchantmentBlockItem),
|
||||||
typeof (MapTierBlockItem),
|
typeof (MapTierBlockItem),
|
||||||
typeof (ShapedMapBlockItem),
|
typeof (ShapedMapBlockItem),
|
||||||
typeof (ElderMapBlockItem),
|
typeof (ElderMapBlockItem),
|
||||||
typeof (GemLevelBlockItem),
|
typeof (GemLevelBlockItem),
|
||||||
typeof (StackSizeBlockItem),
|
typeof (StackSizeBlockItem),
|
||||||
typeof (HasExplicitModBlockItem)
|
typeof (HasExplicitModBlockItem),
|
||||||
|
typeof (HasEnchantmentBlockItem)
|
||||||
};
|
};
|
||||||
|
|
||||||
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user