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,
|
||||
ElderItem,
|
||||
ShaperItem,
|
||||
SynthesisedItem,
|
||||
FracturedItem,
|
||||
AnyEnchantment,
|
||||
MapTier,
|
||||
ShapedMap,
|
||||
ElderMap,
|
||||
@ -27,6 +30,7 @@ namespace Filtration.ObjectModel.Enums
|
||||
BaseType,
|
||||
Prophecy,
|
||||
HasExplicitMod,
|
||||
HasEnchantment,
|
||||
SetTextColor,
|
||||
SetBackgroundColor,
|
||||
SetBorderColor,
|
||||
|
@ -81,8 +81,11 @@
|
||||
<Compile Include="BlockItemBaseTypes\IntegerBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\NumericFilterPredicateBlockItem.cs" />
|
||||
<Compile Include="BlockItemBaseTypes\StringListBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\AnyEnchantmentBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BackgroundColorBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BaseTypeBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\FracturedItemBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\HasEnchantmentBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\MapTierBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\PlayEffectBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\BorderColorBlockItem.cs" />
|
||||
@ -95,6 +98,7 @@
|
||||
<Compile Include="BlockItemTypes\MapIconBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ProphecyBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ShapedMapBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\SynthesisedItemBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ShaperItemBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\ElderItemBlockItem.cs" />
|
||||
<Compile Include="BlockItemTypes\CorruptedBlockItem.cs" />
|
||||
|
@ -184,6 +184,21 @@ namespace Filtration.Parser.Services
|
||||
AddBooleanItemToBlockItems<ShaperItemBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "SynthesisedItem":
|
||||
{
|
||||
AddBooleanItemToBlockItems<SynthesisedItemBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "FracturedItem":
|
||||
{
|
||||
AddBooleanItemToBlockItems<FracturedItemBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "AnyEnchantment":
|
||||
{
|
||||
AddBooleanItemToBlockItems<AnyEnchantmentBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "ShapedMap":
|
||||
{
|
||||
AddBooleanItemToBlockItems<ShapedMapBlockItem>(block, trimmedLine);
|
||||
@ -317,6 +332,11 @@ namespace Filtration.Parser.Services
|
||||
AddStringListItemToBlockItems<HasExplicitModBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "HasEnchantment":
|
||||
{
|
||||
AddStringListItemToBlockItems<HasEnchantmentBlockItem>(block, trimmedLine);
|
||||
break;
|
||||
}
|
||||
case "ElderMap":
|
||||
{
|
||||
AddBooleanItemToBlockItems<ElderMapBlockItem>(block, trimmedLine);
|
||||
|
@ -463,6 +463,7 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Resources\Enchantments.txt" />
|
||||
<Resource Include="Resources\Icons\no_sound_dds_light.png" />
|
||||
<Resource Include="Resources\Icons\no_sound_dds.png" />
|
||||
<Resource Include="Resources\Icons\speaker_icon.png" />
|
||||
|
11
Filtration/Properties/Resources.Designer.cs
generated
11
Filtration/Properties/Resources.Designer.cs
generated
@ -389,6 +389,17 @@ namespace Filtration.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Enchantment Decree of Force.
|
||||
/// </summary>
|
||||
internal static string Enchantments
|
||||
{
|
||||
get
|
||||
{
|
||||
return ResourceManager.GetString("Enchantments", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream.
|
||||
/// </summary>
|
||||
|
@ -214,4 +214,7 @@
|
||||
<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>
|
||||
</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>
|
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> ItemMods { get; }
|
||||
IEnumerable<string> Prophecies { get; }
|
||||
IEnumerable<string> Enchantments { get; }
|
||||
}
|
||||
|
||||
internal class StaticDataService : IStaticDataService
|
||||
@ -29,12 +30,15 @@ namespace Filtration.Services
|
||||
|
||||
public IEnumerable<string> Prophecies { get; private set; }
|
||||
|
||||
public IEnumerable<string> Enchantments { get; private set; }
|
||||
|
||||
private void PopulateStaticData()
|
||||
{
|
||||
ItemBaseTypes = new LineReader(() => new StringReader(Resources.ItemBaseTypes)).ToList();
|
||||
ItemClasses = new LineReader(() => new StringReader(Resources.ItemClasses)).ToList();
|
||||
ItemMods = new LineReader(() => new StringReader(Resources.ItemMods)).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}" />
|
||||
</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 -->
|
||||
<DataTemplate DataType="{x:Type blockItemTypes:SocketGroupBlockItem}">
|
||||
<userControls:EditableListBoxControl Margin="5,5,5,5" ItemsSource="{Binding Items}" />
|
||||
|
@ -131,12 +131,16 @@ namespace Filtration.ViewModels.DesignTime
|
||||
typeof (CorruptedBlockItem),
|
||||
typeof (ElderItemBlockItem),
|
||||
typeof (ShaperItemBlockItem),
|
||||
typeof (SynthesisedItemBlockItem),
|
||||
typeof (FracturedItemBlockItem),
|
||||
typeof (AnyEnchantmentBlockItem),
|
||||
typeof (MapTierBlockItem),
|
||||
typeof (ShapedMapBlockItem),
|
||||
typeof (ElderMapBlockItem),
|
||||
typeof (GemLevelBlockItem),
|
||||
typeof (StackSizeBlockItem),
|
||||
typeof (HasExplicitModBlockItem)
|
||||
typeof (HasExplicitModBlockItem),
|
||||
typeof (HasEnchantmentBlockItem)
|
||||
};
|
||||
public List<Type> AudioVisualBlockItemTypesAvailable { get; }
|
||||
public Color DisplayTextColor => Colors.Red;
|
||||
|
@ -208,6 +208,8 @@ namespace Filtration.ViewModels
|
||||
|
||||
public IEnumerable<string> AutocompleteItemMods => _staticDataService.ItemMods;
|
||||
|
||||
public IEnumerable<string> AutocompleteEnchantments => _staticDataService.Enchantments;
|
||||
|
||||
public List<Type> BlockItemTypesAvailable => new List<Type>
|
||||
{
|
||||
typeof (ItemLevelBlockItem),
|
||||
@ -226,12 +228,16 @@ namespace Filtration.ViewModels
|
||||
typeof (CorruptedBlockItem),
|
||||
typeof (ElderItemBlockItem),
|
||||
typeof (ShaperItemBlockItem),
|
||||
typeof (SynthesisedItemBlockItem),
|
||||
typeof (FracturedItemBlockItem),
|
||||
typeof (AnyEnchantmentBlockItem),
|
||||
typeof (MapTierBlockItem),
|
||||
typeof (ShapedMapBlockItem),
|
||||
typeof (ElderMapBlockItem),
|
||||
typeof (GemLevelBlockItem),
|
||||
typeof (StackSizeBlockItem),
|
||||
typeof (HasExplicitModBlockItem)
|
||||
typeof (HasExplicitModBlockItem),
|
||||
typeof (HasEnchantmentBlockItem)
|
||||
};
|
||||
|
||||
public List<Type> AudioVisualBlockItemTypesAvailable => new List<Type>
|
||||
|
Loading…
x
Reference in New Issue
Block a user