147 lines
9.1 KiB
XML
147 lines
9.1 KiB
XML
<UserControl x:Class="Torch.Server.Views.ConfigControl"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:viewModels="clr-namespace:Torch.Server.ViewModels"
|
|
xmlns:managers="clr-namespace:Torch.Server.Managers"
|
|
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
|
xmlns:validationRules="clr-namespace:Torch.Server.Views.ValidationRules"
|
|
xmlns:views="clr-namespace:Torch.Views;assembly=Torch"
|
|
mc:Ignorable="d">
|
|
<UserControl.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="Resources.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
</ResourceDictionary>
|
|
</UserControl.Resources>
|
|
<UserControl.DataContext>
|
|
<viewModels:ConfigDedicatedViewModel />
|
|
</UserControl.DataContext>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition />
|
|
</Grid.RowDefinitions>
|
|
<DockPanel Grid.Row="0">
|
|
<Label Content="World:" DockPanel.Dock="Left" />
|
|
<Button Content="Import World Config" Margin="3" Padding="3" DockPanel.Dock="Right" Click="ImportConfig_OnClick" ToolTip="Override the DS config with the one from the selected world." IsEnabled="{Binding ElementName=WorldList, Path=Items.Count, Mode=OneWay}"/>
|
|
<Button Content="New World" Margin="3" Padding="3" DockPanel.Dock="Right" Click="NewWorld_OnClick"/>
|
|
<ComboBox x:Name="WorldList" ItemsSource="{Binding Worlds}" SelectedItem="{Binding SelectedWorld}" Margin="3"
|
|
SelectionChanged="Selector_OnSelectionChanged">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate DataType="managers:WorldViewModel">
|
|
<StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Content="{Binding Checkpoint.SessionName}" FontWeight="Bold" Padding="0" />
|
|
<Label Content="{Binding WorldPath}" Padding="5,0,0,0" />
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<Label Content="Size (KB): " Padding="0" />
|
|
<Label Content="{Binding WorldSizeKB}" Padding="0" />
|
|
<Label Content="Last saved: " Padding="5,0,0,0" />
|
|
<Label Content="{Binding Checkpoint.LastSaveTime}" Padding="0" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</DockPanel>
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="7*" />
|
|
<ColumnDefinition Width="10*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid Grid.Column="0">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0" Margin="3" DockPanel.Dock="Left">
|
|
<Label Content="Server Name" />
|
|
<TextBox Text="{Binding ServerName}" Margin="3,0,3,3" Width="160" />
|
|
<Label Content="World Name" />
|
|
<TextBox Text="{Binding WorldName}" Margin="3,0,3,3" Width="160" />
|
|
<Label Content="Server Description" />
|
|
<TextBox Text="{Binding ServerDescription}" Margin="3,0,3,3" Width="160" Height="100"
|
|
AcceptsReturn="true" VerticalScrollBarVisibility="Auto"/>
|
|
<Label Content="Whitelist Group ID" />
|
|
<TextBox Margin="3,0,3,3" Width="160" Style="{StaticResource ValidatedTextBox}">
|
|
<TextBox.Text>
|
|
<Binding Path="GroupId" UpdateSourceTrigger="PropertyChanged"
|
|
ValidatesOnDataErrors="True" NotifyOnValidationError="True">
|
|
<Binding.ValidationRules>
|
|
<validationRules:NumberValidationRule />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox.Text>
|
|
</TextBox>
|
|
<Label Content="Server IP" />
|
|
<StackPanel Orientation="Horizontal" Margin="3,0,3,3">
|
|
<TextBox Text="{Binding IP}" Width="100" Height="20" />
|
|
<Label Content=":" Width="12" />
|
|
<TextBox Text="{Binding Port}" Width="48" Height="20" />
|
|
</StackPanel>
|
|
<Label Content="Server Password"/>
|
|
<TextBox Text="{Binding Password}" Width="160"/>
|
|
<CheckBox IsChecked="{Binding PauseGameWhenEmpty}" Content="Pause When Empty" Margin="3" />
|
|
<CheckBox IsChecked="{Binding AutodetectDependencies}" Content="Auto Detect Dependencies" Margin="3" />
|
|
</StackPanel>
|
|
<StackPanel Grid.Column="1" Margin="3">
|
|
<Label Content="Administrators" />
|
|
<TextBox Text="{Binding Administrators, Converter={StaticResource ListConverterString}}"
|
|
Margin="3"
|
|
Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" />
|
|
<Button Content="Edit Roles" Click="RoleEdit_Onlick" Margin="3"/>
|
|
<Label Content="Reserved Players" />
|
|
<TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto"
|
|
Style="{StaticResource ValidatedTextBox}">
|
|
<TextBox.Text>
|
|
<Binding Path="Reserved" UpdateSourceTrigger="PropertyChanged"
|
|
ValidatesOnDataErrors="True" NotifyOnValidationError="True"
|
|
Converter="{StaticResource ListConverterUInt64}">
|
|
<Binding.ValidationRules>
|
|
<validationRules:ListConverterValidationRule Type="system:UInt64" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox.Text>
|
|
</TextBox>
|
|
<Label Content="Banned Players" />
|
|
<TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto"
|
|
Style="{StaticResource ValidatedTextBox}">
|
|
<TextBox.Text>
|
|
<Binding Path="Banned" UpdateSourceTrigger="PropertyChanged"
|
|
ValidatesOnDataErrors="True" NotifyOnValidationError="True"
|
|
Converter="{StaticResource ListConverterUInt64}">
|
|
<Binding.ValidationRules>
|
|
<validationRules:ListConverterValidationRule Type="system:UInt64" />
|
|
</Binding.ValidationRules>
|
|
</Binding>
|
|
</TextBox.Text>
|
|
</TextBox>
|
|
</StackPanel>
|
|
</Grid>
|
|
</ScrollViewer>
|
|
<Button Grid.Row="1" Content="Save Config" Margin="3" Click="Save_OnClick" />
|
|
</Grid>
|
|
<TabControl Grid.Column="1" Margin="3">
|
|
<TabItem Header="World">
|
|
<views:PropertyGrid DataContext="{Binding SessionSettings}" IgnoreDisplay ="True" />
|
|
</TabItem>
|
|
<TabItem Header="Torch">
|
|
<views:PropertyGrid x:Name="TorchSettings" />
|
|
</TabItem>
|
|
</TabControl>
|
|
|
|
<GridSplitter Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Stretch" ShowsPreview="True"
|
|
Width="2" />
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl> |