Remove circular dependency, sort some config items

This commit is contained in:
John Gross
2017-03-30 16:57:58 -07:00
parent 5c1a9a5e35
commit 9a9daec656
7 changed files with 34 additions and 39 deletions

View File

@@ -18,6 +18,6 @@ namespace Torch.API
void BanPlayer(ulong steamId, bool banned = true); void BanPlayer(ulong steamId, bool banned = true);
IMyPlayer GetPlayerBySteamId(ulong id); IMyPlayer GetPlayerBySteamId(ulong id);
IMyPlayer GetPlayerByName(string name); IMyPlayer GetPlayerByName(string name);
MTObservableCollection<IChatMessage> ChatHistory { get; } List<IChatMessage> ChatHistory { get; }
} }
} }

View File

@@ -69,9 +69,6 @@
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Torch">
<HintPath>..\Torch.Server\bin\x64\Release\Torch.dll</HintPath>
</Reference>
<Reference Include="VRage"> <Reference Include="VRage">
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.dll</HintPath> <HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.dll</HintPath>
<Private>False</Private> <Private>False</Private>

View File

@@ -12,5 +12,5 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
[assembly: AssemblyVersion("1.0.89.455")] [assembly: AssemblyVersion("1.0.89.507")]
[assembly: AssemblyFileVersion("1.0.89.455")] [assembly: AssemblyFileVersion("1.0.89.507")]

View File

@@ -12,5 +12,5 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
[assembly: AssemblyVersion("1.0.89.455")] [assembly: AssemblyVersion("1.0.89.507")]
[assembly: AssemblyFileVersion("1.0.89.455")] [assembly: AssemblyFileVersion("1.0.89.507")]

View File

@@ -36,17 +36,16 @@ namespace Torch.Server
public void BindServer(ITorchServer server) public void BindServer(ITorchServer server)
{ {
//ChatItems.ItemsSource = server.Multiplayer.ChatHistory; _server = server;
//server.Multiplayer.MessageReceived += Refresh; server.Multiplayer.MessageReceived += Refresh;
//Refresh();
} }
private void Refresh(IChatMessage chatItem = null) private void Refresh(IChatMessage chatItem, ref bool sendToOthers)
{ {
Dispatcher.Invoke(() => Dispatcher.Invoke(() =>
{ {
ChatItems.ItemsSource = null; ChatItems.ItemsSource = null;
//ChatItems.ItemsSource = _server.Multiplayer.Chat; ChatItems.ItemsSource = _server.Multiplayer.ChatHistory;
}); });
} }

View File

@@ -40,7 +40,7 @@
<Label Content="Mods"/> <Label Content="Mods"/>
<ListBox ItemsSource="{Binding Mods}" Width="130" Margin="3,0,3,3" Height="100" MouseDoubleClick="Mods_OnMouseDoubleClick"/> <ListBox ItemsSource="{Binding Mods}" Width="130" Margin="3,0,3,3" Height="100" MouseDoubleClick="Mods_OnMouseDoubleClick"/>
</StackPanel> </StackPanel>
<ScrollViewer Margin="3" DockPanel.Dock="Right"> <ScrollViewer Margin="3" DockPanel.Dock="Right" Height="700">
<StackPanel DataContext="{Binding SessionSettings}"> <StackPanel DataContext="{Binding SessionSettings}">
<Expander Header="Multipliers"> <Expander Header="Multipliers">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
@@ -81,13 +81,34 @@
</Expander> </Expander>
<Expander Header="Environment"> <Expander Header="Environment">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
<CheckBox IsChecked="{Binding EnableSunRotation}" Content="Enable Sun Rotation" Margin="3"/> <CheckBox IsChecked="{Binding EnableRealisticSound}" Content="Enable Realistic Sound" Margin="3"/>
<CheckBox IsChecked="{Binding EnableAirtightness}" Content="Enable Airtightness" Margin="3"/> <CheckBox IsChecked="{Binding EnableAirtightness}" Content="Enable Airtightness" Margin="3"/>
<CheckBox IsChecked="{Binding EnableOxygen}" Content="Enable Oxygen" Margin="3"/> <CheckBox IsChecked="{Binding EnableOxygen}" Content="Enable Oxygen" Margin="3"/>
<CheckBox IsChecked="{Binding EnableDestructibleBlocks}" Content="Enable Destructible Blocks" Margin="3"/> <CheckBox IsChecked="{Binding EnableDestructibleBlocks}" Content="Enable Destructible Blocks" Margin="3"/>
<CheckBox IsChecked="{Binding EnableToolShake}" Content="Enable Tool Shake" 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 EnableVoxelDestruction}" Content="Enable Voxel Destruction" Margin="3"/>
<CheckBox IsChecked="{Binding EnableSunRotation}" Content="Enable Sun Rotation" Margin="3"/>
<DockPanel>
<TextBox Text="{Binding SunRotationInterval}" Margin="3" Width="70"/>
<Label Content="Sun Rotation Interval (mins)"/>
</DockPanel>
<CheckBox IsChecked="{Binding EnableFlora}" Content="Enable Flora" Margin="3"/> <CheckBox IsChecked="{Binding EnableFlora}" Content="Enable Flora" Margin="3"/>
<DockPanel>
<TextBox Text="{Binding FloraDensity}" Margin="3" Width="70"/>
<Label Content="Flora Density"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding FloraDensityMultiplier}" Margin="3" Width="70"/>
<Label Content="Flora Density Multiplier"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding ViewDistance}" Margin="3" Width="70"/>
<Label Content="View Distance (meters)"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding WorldSize}" Margin="3" Width="70"/>
<Label Content="World Size (km)"/>
</DockPanel>
<DockPanel> <DockPanel>
<ComboBox SelectedItem="{Binding EnvironmentHostility}" ItemsSource="{Binding EnvironmentHostilityValues}" Margin="3" Width="100" DockPanel.Dock="Left"/> <ComboBox SelectedItem="{Binding EnvironmentHostility}" ItemsSource="{Binding EnvironmentHostilityValues}" Margin="3" Width="100" DockPanel.Dock="Left"/>
<Label Content="Environment Hostility"></Label> <Label Content="Environment Hostility"></Label>
@@ -114,7 +135,6 @@
<CheckBox IsChecked="{Binding EnableRespawnShips}" Content="Enable Respawn Ships" 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 EnableScripterRole}" Content="Enable Scripter Role" Margin="3"/>
<CheckBox IsChecked="{Binding EnableSpectator}" Content="Enable Spectator Camera" Margin="3"/> <CheckBox IsChecked="{Binding EnableSpectator}" Content="Enable Spectator Camera" Margin="3"/>
<CheckBox IsChecked="{Binding EnableRealisticSound}" Content="Enable Realistic Sound" Margin="3"/>
<CheckBox IsChecked="{Binding ResetOwnership}" Content="Reset Ownership" Margin="3"/> <CheckBox IsChecked="{Binding ResetOwnership}" Content="Reset Ownership" Margin="3"/>
<CheckBox IsChecked="{Binding DeleteRespawnShips}" Content="Remove Respawn Ships on Logoff" Margin="3"/> <CheckBox IsChecked="{Binding DeleteRespawnShips}" Content="Remove Respawn Ships on Logoff" Margin="3"/>
<CheckBox IsChecked="{Binding EnableThrusterDamage}" Content="Enable Thruster Damage" Margin="3"/> <CheckBox IsChecked="{Binding EnableThrusterDamage}" Content="Enable Thruster Damage" Margin="3"/>
@@ -125,14 +145,6 @@
<ComboBox SelectedItem="{Binding GameMode}" ItemsSource="{Binding GameModeValues}" Margin="3" Width="100" DockPanel.Dock="Left"/> <ComboBox SelectedItem="{Binding GameMode}" ItemsSource="{Binding GameModeValues}" Margin="3" Width="100" DockPanel.Dock="Left"/>
<Label Content="Game Mode"></Label> <Label Content="Game Mode"></Label>
</DockPanel> </DockPanel>
<DockPanel>
<TextBox Text="{Binding FloraDensity}" Margin="3" Width="70"/>
<Label Content="Flora Density"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding FloraDensityMultiplier}" Margin="3" Width="70"/>
<Label Content="Flora Density Multiplier"/>
</DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding MaxBackupSaves}" Margin="3" Width="70"/> <TextBox Text="{Binding MaxBackupSaves}" Margin="3" Width="70"/>
<Label Content="Max Backup Saves"/> <Label Content="Max Backup Saves"/>
@@ -161,18 +173,6 @@
<TextBox Text="{Binding SpawnTimeMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding SpawnTimeMultiplier}" Margin="3" Width="70"/>
<Label Content="Respawn Time Multiplier"/> <Label Content="Respawn Time Multiplier"/>
</DockPanel> </DockPanel>
<DockPanel>
<TextBox Text="{Binding SunRotationInterval}" Margin="3" Width="70"/>
<Label Content="Sun Rotation Interval (mins)"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding ViewDistance}" Margin="3" Width="70"/>
<Label Content="View Distance (meters)"/>
</DockPanel>
<DockPanel>
<TextBox Text="{Binding WorldSize}" Margin="3" Width="70"/>
<Label Content="World Size (km)"/>
</DockPanel>
</StackPanel> </StackPanel>
</Expander> </Expander>
</StackPanel> </StackPanel>

View File

@@ -39,7 +39,7 @@ namespace Torch.Managers
public event Action<ulong, ConnectionState> PlayerLeft; public event Action<ulong, ConnectionState> PlayerLeft;
public event MessageReceivedDel MessageReceived; public event MessageReceivedDel MessageReceived;
public MTObservableCollection<IChatMessage> ChatHistory { get; } = new MTObservableCollection<IChatMessage>(); public List<IChatMessage> ChatHistory { get; } = new List<IChatMessage>();
public Dictionary<ulong, IMyPlayer> Players { get; } = new Dictionary<ulong, IMyPlayer>(); public Dictionary<ulong, IMyPlayer> Players { get; } = new Dictionary<ulong, IMyPlayer>();
public IMyPlayer LocalPlayer => MySession.Static.LocalHumanPlayer; public IMyPlayer LocalPlayer => MySession.Static.LocalHumanPlayer;
private readonly ITorchBase _torch; private readonly ITorchBase _torch;
@@ -139,8 +139,7 @@ namespace Torch.Managers
private static void RemoveHandlers() private static void RemoveHandlers()
{ {
var eventField = typeof(GameServer).GetField("<backing_store>ValidateAuthTicketResponse", BindingFlags.NonPublic | BindingFlags.Instance); var eventField = typeof(GameServer).GetField("<backing_store>ValidateAuthTicketResponse", BindingFlags.NonPublic | BindingFlags.Instance);
var eventDel = eventField?.GetValue(SteamServerAPI.Instance.GameServer) as MulticastDelegate; if (eventField?.GetValue(SteamServerAPI.Instance.GameServer) is MulticastDelegate eventDel)
if (eventDel != null)
{ {
foreach (var handle in eventDel.GetInvocationList()) foreach (var handle in eventDel.GetInvocationList())
{ {