Crafting Override Changes

- added good, warning and bad icons to crafting override grids.
This commit is contained in:
Brett Hewitson 2022-06-15 22:33:59 +10:00
parent a5e1f78629
commit 9df02ec05e
6 changed files with 184 additions and 16 deletions

View file

@ -4836,7 +4836,7 @@
</StackPanel>
</GroupBox.Header>
<DataGrid Name="CraftingOverrideItemGrid" ItemsSource="{Binding ConfigOverrideItemCraftingCosts}" SelectedItem="{Binding Path=SelectedCraftingOverride, ElementName=SettingsControl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="true" SelectionMode="Single" CanUserResizeRows="False" RowHeaderWidth="25">
<DataGrid Name="CraftingOverrideItemGrid" ItemsSource="{Binding ConfigOverrideItemCraftingCosts}" SelectedItem="{Binding Path=SelectedCraftingOverride, ElementName=SettingsControl, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="true" SelectionMode="Single" CanUserResizeRows="False" RowHeaderWidth="25" SourceUpdated="CraftingOverrideGrids_SourceUpdated">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Resources>
@ -4853,6 +4853,28 @@
<SolidColorBrush Color="#FFB4B4B4"/>
</DataGrid.VerticalGridLinesBrush>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Image HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="Y">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusGood.ico,Size=32}"/>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="N">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusBad.ico,Size=32}"/>
</DataTrigger>
<DataTrigger Binding="{Binding DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="W">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusWarning.ico,Size=32}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Columns>
<DataGridTemplateColumn Width="2*" CanUserSort="True" SortMemberPath="DisplayName">
<DataGridTemplateColumn.Header>
@ -4860,7 +4882,7 @@
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox IsEditable="True" ItemsSource="{Binding BasePrimalItemList, ElementName=SettingsControl}" SelectedValue="{Binding ItemClassString, Mode=TwoWay, UpdateSourceTrigger=Explicit}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" LostFocus="ComboBoxItemList_LostFocus" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<ComboBox IsEditable="True" ItemsSource="{Binding BasePrimalItemList, ElementName=SettingsControl}" SelectedValue="{Binding ItemClassString, Mode=TwoWay, UpdateSourceTrigger=Explicit, NotifyOnSourceUpdated=True}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" LostFocus="ComboBoxItemList_LostFocus" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
@ -4901,7 +4923,7 @@
</StackPanel>
</GroupBox.Header>
<DataGrid Name="CraftingOverrideResourceGrid" ItemsSource="{Binding Path=SelectedCraftingOverride.BaseCraftingResourceRequirements, ElementName=SettingsControl}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="true" SelectionMode="Single" CanUserResizeRows="False" RowHeaderWidth="25">
<DataGrid Name="CraftingOverrideResourceGrid" ItemsSource="{Binding Path=SelectedCraftingOverride.BaseCraftingResourceRequirements, ElementName=SettingsControl}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserSortColumns="true" SelectionMode="Single" CanUserResizeRows="False" RowHeaderWidth="25" SourceUpdated="CraftingOverrideGrids_SourceUpdated">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Resources>
@ -4918,6 +4940,28 @@
<SolidColorBrush Color="#FFB4B4B4"/>
</DataGrid.VerticalGridLinesBrush>
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Image HorizontalAlignment="Center" VerticalAlignment="Center" Width="16" Height="16">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="Y">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusGood.ico,Size=32}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="N">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusBad.ico,Size=32}"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=DataContext.ValidStatus, RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="W">
<Setter Property="Source" Value="{com:Icon Path=/Ark Server Manager;component/Art/StatusWarning.ico,Size=32}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</DataTemplate>
</DataGrid.RowHeaderTemplate>
<DataGrid.Columns>
<DataGridTemplateColumn Width="2*" CanUserSort="True" SortMemberPath="DisplayName">
<DataGridTemplateColumn.Header>
@ -4925,12 +4969,12 @@
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox IsEditable="True" ItemsSource="{Binding BasePrimalItemList, ElementName=SettingsControl}" SelectedValue="{Binding ResourceItemTypeString, Mode=TwoWay, UpdateSourceTrigger=Explicit}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" LostFocus="ComboBoxItemList_LostFocus" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
<ComboBox IsEditable="True" ItemsSource="{Binding BasePrimalItemList, ElementName=SettingsControl}" SelectedValue="{Binding ResourceItemTypeString, Mode=TwoWay, UpdateSourceTrigger=Explicit, NotifyOnSourceUpdated=True}" SelectedValuePath="ValueMember" DisplayMemberPath="DisplayMember" LostFocus="ComboBoxItemList_LostFocus" PreviewMouseWheel="ComboBox_PreviewMouseWheel"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="100" Binding="{Binding BaseResourceRequirement}" ElementStyle="{StaticResource CenteredTextBlockStyle}" >
<DataGridTextColumn Width="100" Binding="{Binding BaseResourceRequirement, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" ElementStyle="{StaticResource CenteredTextBlockStyle}" >
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource ServerSettings_CraftingOverrides_ResourceQuantityColumnLabel}" ToolTip="{DynamicResource ServerSettings_CraftingOverrides_ResourceQuantityColumnTooltip}" />
</DataGridTextColumn.Header>

View file

@ -1314,6 +1314,11 @@ namespace ServerManagerTool
Settings.ConfigOverrideSupplyCrateItems.Update();
}
private void CraftingOverrideGrids_SourceUpdated(object sender, DataTransferEventArgs e)
{
Settings.ConfigOverrideItemCraftingCosts.Update();
}
#region Dinos
private void DinoCustomization_Reset(object sender, RoutedEventArgs e)
{
@ -1749,7 +1754,7 @@ namespace ServerManagerTool
private void AddCraftingOverride_Click(object sender, RoutedEventArgs e)
{
Settings.ConfigOverrideItemCraftingCosts.Add(new CraftingOverride());
Settings.ConfigOverrideItemCraftingCosts.IsEnabled = true;
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void AddCraftingOverrideResource_Click(object sender, RoutedEventArgs e)
@ -1761,6 +1766,7 @@ namespace ServerManagerTool
}
SelectedCraftingOverride.BaseCraftingResourceRequirements.Add(new CraftingResourceRequirement());
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void ClearCraftingOverrides_Click(object sender, RoutedEventArgs e)
@ -1770,7 +1776,7 @@ namespace ServerManagerTool
SelectedCraftingOverride = null;
Settings.ConfigOverrideItemCraftingCosts.Clear();
Settings.ConfigOverrideItemCraftingCosts.IsEnabled = false;
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void ClearCraftingOverrideResources_Click(object sender, RoutedEventArgs e)
@ -1779,6 +1785,7 @@ namespace ServerManagerTool
return;
SelectedCraftingOverride?.BaseCraftingResourceRequirements.Clear();
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void PasteCraftingOverride_Click(object sender, RoutedEventArgs e)
@ -1794,6 +1801,8 @@ namespace ServerManagerTool
// read the pasted data into an ini file.
var iniFile = IniFileUtils.ReadString(window.ConfigData.Replace(" ", ""));
Server.Profile.ConfigOverrideItemCraftingCosts.RenderToModel();
// cycle through the sections, adding them to the engrams list. Will bypass any sections that are named as per the ARK default sections.
foreach (var section in iniFile.Sections.Where(s => s.SectionName != null && !SystemIniFile.IniSectionNames.ContainsValue(s.SectionName)))
{
@ -1803,6 +1812,8 @@ namespace ServerManagerTool
Server.Profile.ConfigOverrideItemCraftingCosts.IsEnabled |= configOverrideItemCraftingCosts.IsEnabled;
}
var errors = Server.Profile.ConfigOverrideItemCraftingCosts.RenderToView();
RefreshBasePrimalItemList();
}
@ -1813,7 +1824,7 @@ namespace ServerManagerTool
var item = ((CraftingOverride)((Button)e.Source).DataContext);
Settings.ConfigOverrideItemCraftingCosts.Remove(item);
Settings.ConfigOverrideItemCraftingCosts.IsEnabled = Settings.ConfigOverrideItemCraftingCosts.Count > 0;
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void RemoveCraftingOverrideResource_Click(object sender, RoutedEventArgs e)
@ -1826,10 +1837,13 @@ namespace ServerManagerTool
var item = ((CraftingResourceRequirement)((Button)e.Source).DataContext);
SelectedCraftingOverride.BaseCraftingResourceRequirements.Remove(item);
Settings.ConfigOverrideItemCraftingCosts.Update();
}
private void SaveCraftingOverride_Click(object sender, RoutedEventArgs e)
{
Settings.ConfigOverrideItemCraftingCosts.RenderToModel();
var iniValues = new List<string>();
iniValues.AddRange(Settings.ConfigOverrideItemCraftingCosts.ToIniValues());
var iniValue = string.Join("\r\n", iniValues);
@ -1848,6 +1862,8 @@ namespace ServerManagerTool
if (item == null)
return;
Settings.ConfigOverrideItemCraftingCosts.RenderToModel();
var iniName = Settings.ConfigOverrideItemCraftingCosts.IniCollectionKey;
var iniValue = $"{iniName}={item.ToINIValue()}";