View model improvements, load world checkpoints for more config options

This commit is contained in:
John Gross
2017-12-03 09:34:28 -08:00
parent 930f1d43e0
commit 1be1c938cc
25 changed files with 1284 additions and 602 deletions

View File

@@ -0,0 +1,189 @@
<UserControl x:Class="Torch.Server.Views.SessionSettingsView"
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:local="clr-namespace:Torch.Server.Views"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<StackPanel>
<Expander Header="Block Limits">
<StackPanel Margin="10,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding MaxBlocksPerPlayer}" Margin="3" Width="70" />
<Label Content="Max Blocks Per Player" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding MaxGridSize}" Margin="3" Width="70" />
<Label Content="Max Grid Size" />
</StackPanel>
<Button Content="Add" Margin="3" Click="AddLimit_OnClick" />
<ListView ItemsSource="{Binding BlockTypeLimits.Dictionary}" Margin="3">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Key, Mode=OneTime}" Width="150" Margin="3" />
<TextBox Text="{Binding Value, Mode=OneTime}" Width="50" Margin="3" />
<Button Content=" X " Margin="3" Click="RemoveLimit_OnClick" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</Expander>
<Expander Header="Multipliers">
<StackPanel Margin="10,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding InventorySizeMultiplier}" Margin="3" Width="70" />
<Label Content="Inventory Size" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding RefinerySpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Refinery Speed" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding AssemblerEfficiencyMultiplier}" Margin="3" Width="70" />
<Label Content="Assembler Efficiency" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding AssemblerSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Assembler Speed" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding WelderSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Welder Speed" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding GrinderSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Grinder Speed" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding HackSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Hacking Speed" />
</StackPanel>
</StackPanel>
</Expander>
<Expander Header="NPCs">
<StackPanel Margin="10,0,0,0">
<CheckBox IsChecked="{Binding EnableDrones}" Content="Enable Drones" Margin="3" />
<CheckBox IsChecked="{Binding EnableEncounters}" Content="Enable Encounters" Margin="3" />
<CheckBox IsChecked="{Binding EnableSpiders}" Content="Enable Spiders" Margin="3" />
<CheckBox IsChecked="{Binding EnableWolfs}" Content="Enable Wolves" Margin="3" />
<CheckBox IsChecked="{Binding CargoShipsEnabled}" Content="Enable Cargo Ships" Margin="3" />
</StackPanel>
</Expander>
<Expander Header="Environment">
<StackPanel Margin="10,0,0,0">
<StackPanel Orientation="Horizontal" ToolTip="Increases physics precision at the cost of performance.">
<TextBox Text="{Binding PhysicsIterations}" Margin="3" Width="70" />
<Label Content="Physics Iterations" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding MaxFloatingObjects}" Margin="3" Width="70" />
<Label Content="Max Floating Objects" />
</StackPanel>
<CheckBox IsChecked="{Binding RealisticSound}" Content="Enable Realistic Sound"
Margin="3" />
<CheckBox IsChecked="{Binding EnableOxygenPressurization}" Content="Enable Airtightness" Margin="3" />
<CheckBox IsChecked="{Binding EnableOxygen}" Content="Enable Oxygen" Margin="3" />
<CheckBox IsChecked="{Binding DestructibleBlocks}"
Content="Enable Destructible Blocks" Margin="3" />
<CheckBox IsChecked="{Binding EnableToolShake}" Content="Enable Tool Shake" Margin="3" />
<CheckBox IsChecked="{Binding EnableVoxelDestruction}" Content="Enable Voxel Destruction"
Margin="3" />
<CheckBox IsChecked="{Binding EnableSunRotation}" Content="Enable Sun Rotation" Margin="3" />
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding SunRotationIntervalMinutes}" Margin="3" Width="70" />
<Label Content="Sun Rotation Interval (mins)" />
</StackPanel>
<CheckBox IsChecked="{Binding EnableFlora}" Content="Enable Flora" Margin="3" />
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding FloraDensity}" Margin="3" Width="70" />
<Label Content="Flora Density" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding FloraDensityMultiplier}" Margin="3" Width="70" />
<Label Content="Flora Density Multiplier" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding ViewDistance}" Margin="3" Width="70" />
<Label Content="View Distance (meters)" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding WorldSizeKm}" Margin="3" Width="70" />
<Label Content="World Size (km)" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<ComboBox SelectedItem="{Binding EnvironmentHostility}"
ItemsSource="{Binding EnvironmentHostilityValues}" Margin="3" Width="100"
DockPanel.Dock="Left" />
<Label Content="Environment Hostility" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding ProceduralDensity}" Margin="3" Width="70" />
<Label Content="Procedural Density" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding ProceduralSeed}" Margin="3" Width="70" />
<Label Content="Procedural Seed" />
</StackPanel>
</StackPanel>
</Expander>
<Expander Header="Players">
<StackPanel Margin="10,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding MaxPlayers}" Margin="3" Width="70" />
<Label Content="Max Players" />
</StackPanel>
<CheckBox IsChecked="{Binding Enable3rdPersonView}" Content="Enable 3rd Person Camera"
Margin="3" />
<CheckBox IsChecked="{Binding EnableJetpack}" Content="Enable Jetpack" Margin="3" />
<CheckBox IsChecked="{Binding AutoHealing}" Content="Auto Healing" Margin="3" />
<CheckBox IsChecked="{Binding EnableCopyPaste}" Content="Enable Copy/Paste" Margin="3" />
<CheckBox IsChecked="{Binding ShowPlayerNamesOnHud}" Content="Show Player Names on HUD"
Margin="3" />
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding SpawnShipTimeMultiplier}" Margin="3" Width="70" />
<Label Content="Respawn Time Multiplier" />
</StackPanel>
<CheckBox IsChecked="{Binding ResetOwnership}" Content="Reset Ownership" Margin="3" />
<CheckBox IsChecked="{Binding SpawnWithTools}" Content="Spawn With Tools" Margin="3" />
</StackPanel>
</Expander>
<Expander Header="Miscellaneous">
<StackPanel Margin="10,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding AutoSaveInMinutes}" Margin="3" Width="70" />
<Label Content="Autosave Interval (minutes)" />
</StackPanel>
<CheckBox IsChecked="{Binding EnableConvertToStation}" Content="Enable Convert to Station"
Margin="3" />
<CheckBox IsChecked="{Binding EnableRemoteBlockRemoval}"
Content="Enable Remote Ownership Removal" Margin="3" />
<CheckBox IsChecked="{Binding EnableRespawnShips}" Content="Enable Respawn Ships"
Margin="3" />
<CheckBox IsChecked="{Binding EnableScripterRole}" Content="Enable Scripter Role"
Margin="3" />
<CheckBox IsChecked="{Binding EnableSpectator}" Content="Enable Spectator Camera"
Margin="3" />
<CheckBox IsChecked="{Binding RespawnShipDelete}" Content="Remove Respawn Ships on Logoff"
Margin="3" />
<CheckBox IsChecked="{Binding ThrusterDamage}" Content="Enable Thruster Damage"
Margin="3" />
<CheckBox IsChecked="{Binding WeaponsEnabled}" Content="Enable Weapons" Margin="3" />
<CheckBox IsChecked="{Binding EnableIngameScripts}" Content="Enable Ingame Scripts"
Margin="3" />
<StackPanel Orientation="Horizontal">
<ComboBox SelectedItem="{Binding GameMode}" ItemsSource="{Binding GameModeValues}"
Margin="3" Width="100" DockPanel.Dock="Left" />
<Label Content="Game Mode" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding MaxBackupSaves}" Margin="3" Width="70" />
<Label Content="Max Backup Saves" />
</StackPanel>
</StackPanel>
</Expander>
</StackPanel>
</UserControl>