Fix network intercept and reference paths

This commit is contained in:
John Gross
2017-04-15 16:47:56 -07:00
parent 2858c35c38
commit 32f5147060
29 changed files with 564 additions and 380 deletions

3
.gitignore vendored
View File

@@ -250,4 +250,5 @@ ModelManifest.xml
.paket/paket.exe .paket/paket.exe
# FAKE - F# Make # FAKE - F# Make
.fake/ .fake/
GameBinaries

View File

@@ -32,29 +32,43 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="HavokWrapper, Version=1.0.6278.22649, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\HavokWrapper.dll</HintPath>
</Reference>
<Reference Include="NLog"> <Reference Include="NLog">
<HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" /> <Reference Include="PresentationFramework" />
<Reference Include="Sandbox.Common"> <Reference Include="Sandbox.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Common.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\Sandbox.Common.dll</HintPath>
</Reference> </Reference>
<Reference Include="Sandbox.Game"> <Reference Include="Sandbox.Game, Version=0.1.6305.30774, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Game.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\Sandbox.Game.dll</HintPath>
</Reference> </Reference>
<Reference Include="Sandbox.Graphics"> <Reference Include="Sandbox.Graphics, Version=0.1.6305.30761, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Graphics.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\Sandbox.Graphics.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.Game"> <Reference Include="SpaceEngineers.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.Game.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\SpaceEngineers.Game.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders"> <Reference Include="SpaceEngineers.ObjectBuilders, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.ObjectBuilders.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers"> <Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath>
</Reference>
<Reference Include="SteamSDK, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\SteamSDK.dll</HintPath>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
@@ -69,44 +83,57 @@
<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>..\GameBinaries\VRage.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Audio"> <Reference Include="VRage.Audio, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Audio.dll</HintPath>
</Reference>
<Reference Include="VRage.Game">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Game.dll</HintPath>
</Reference>
<Reference Include="VRage.Game.XmlSerializers">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Game.XmlSerializers.dll</HintPath>
</Reference>
<Reference Include="VRage.Input">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Input.dll</HintPath>
</Reference>
<Reference Include="VRage.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Library.dll</HintPath> <HintPath>..\GameBinaries\VRage.Audio.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Math"> <Reference Include="VRage.Dedicated">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Math.dll</HintPath> <HintPath>..\GameBinaries\VRage.Dedicated.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Native"> <Reference Include="VRage.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Native.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Game.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.OpenVRWrapper"> <Reference Include="VRage.Game.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.OpenVRWrapper.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Game.XmlSerializers.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Render"> <Reference Include="VRage.Input, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Render.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Input.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Render11"> <Reference Include="VRage.Library">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Render11.dll</HintPath> <HintPath>..\GameBinaries\VRage.Library.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Scripting"> <Reference Include="VRage.Math, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Scripting.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Math.dll</HintPath>
</Reference>
<Reference Include="VRage.Native, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Native.dll</HintPath>
</Reference>
<Reference Include="VRage.OpenVRWrapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.OpenVRWrapper.dll</HintPath>
</Reference>
<Reference Include="VRage.Render, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Render.dll</HintPath>
</Reference>
<Reference Include="VRage.Render11, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Render11.dll</HintPath>
</Reference>
<Reference Include="VRage.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Scripting.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,16 +1,4 @@
 using System.Reflection;
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Client")] [assembly: AssemblyVersion("1.0.105.498")]
[assembly: AssemblyDescription("")] [assembly: AssemblyFileVersion("1.0.105.498")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("1.0.89.540")]
[assembly: AssemblyFileVersion("1.0.89.540")]

View File

@@ -4,19 +4,7 @@
<#@ import namespace="System.Text" #> <#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #> <#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #> <#@ output extension=".cs" #>
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Client")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
<# var dt = DateTime.Now; <# var dt = DateTime.Now;
int major = 1; int major = 1;

View File

@@ -0,0 +1,12 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Client")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]

View File

@@ -108,6 +108,7 @@
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
</Compile> </Compile>
<Compile Include="Properties\AssemblyInfo1.cs" />
<Compile Include="TorchClient.cs" /> <Compile Include="TorchClient.cs" />
<Compile Include="TorchConsoleScreen.cs" /> <Compile Include="TorchConsoleScreen.cs" />
<Compile Include="TorchMainMenuScreen.cs" /> <Compile Include="TorchMainMenuScreen.cs" />

View File

@@ -1,16 +1,4 @@
 using System.Reflection;
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Server")] [assembly: AssemblyVersion("1.0.105.498")]
[assembly: AssemblyDescription("")] [assembly: AssemblyFileVersion("1.0.105.498")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("1.0.89.540")]
[assembly: AssemblyFileVersion("1.0.89.540")]

View File

@@ -4,19 +4,7 @@
<#@ import namespace="System.Text" #> <#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #> <#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #> <#@ output extension=".cs" #>
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Server")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
<# var dt = DateTime.Now; <# var dt = DateTime.Now;
int major = 1; int major = 1;

View File

@@ -0,0 +1,12 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Torch Server")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Torch")]
[assembly: AssemblyCopyright("Copyright © Torch API 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]

View File

@@ -45,46 +45,48 @@
<ItemGroup> <ItemGroup>
<Reference Include="HavokWrapper, Version=1.0.6051.28726, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="HavokWrapper, Version=1.0.6051.28726, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\DedicatedServer64\HavokWrapper.dll</HintPath> <HintPath>..\GameBinaries\HavokWrapper.dll</HintPath>
<Private>False</Private> <Private>False</Private>
</Reference> </Reference>
<Reference Include="Microsoft.CodeAnalysis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.CodeAnalysis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Microsoft.CodeAnalysis.dll</HintPath> <HintPath>..\GameBinaries\Microsoft.CodeAnalysis.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Microsoft.CodeAnalysis.CSharp.dll</HintPath> <HintPath>..\GameBinaries\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Sandbox.Common"> <Reference Include="Sandbox.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\Sandbox.Common.dll</HintPath>
</Reference>
<Reference Include="Sandbox.Game">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\Sandbox.Game.dll</HintPath>
</Reference>
<Reference Include="Sandbox.Graphics, Version=0.1.6236.31422, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\Sandbox.Graphics.dll</HintPath> <HintPath>..\GameBinaries\Sandbox.Common.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.Game"> <Reference Include="Sandbox.Game, Version=0.1.6305.30774, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\SpaceEngineers.Game.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\Sandbox.Game.dll</HintPath>
</Reference>
<Reference Include="Sandbox.Graphics, Version=0.1.6305.30761, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\Sandbox.Graphics.dll</HintPath>
</Reference>
<Reference Include="SpaceEngineers.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\SpaceEngineers.Game.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SpaceEngineers.ObjectBuilders, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\SpaceEngineers.ObjectBuilders.dll</HintPath> <HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.dll</HintPath>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath> <HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath>
</Reference> </Reference>
<Reference Include="SteamSDK, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SteamSDK, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SteamSDK.dll</HintPath> <HintPath>..\GameBinaries\SteamSDK.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration.Install" /> <Reference Include="System.Configuration.Install" />
@@ -101,51 +103,57 @@
<Reference Include="System.Xaml"> <Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework> <RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="VRage"> <Reference Include="VRage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Audio, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Audio, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Audio.dll</HintPath> <HintPath>..\GameBinaries\VRage.Audio.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Dedicated"> <Reference Include="VRage.Dedicated, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Dedicated.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Dedicated.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Game"> <Reference Include="VRage.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Game.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Game.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Game.XmlSerializers"> <Reference Include="VRage.Game.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Game.XmlSerializers.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Game.XmlSerializers.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Input"> <Reference Include="VRage.Input, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Input.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Input.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Library"> <Reference Include="VRage.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Library.dll</HintPath> <SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\VRage.Library.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Math, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Math, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Math.dll</HintPath> <HintPath>..\GameBinaries\VRage.Math.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Native, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Native, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Native.dll</HintPath> <HintPath>..\GameBinaries\VRage.Native.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.OpenVRWrapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.OpenVRWrapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.OpenVRWrapper.dll</HintPath> <HintPath>..\GameBinaries\VRage.OpenVRWrapper.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Render, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Render, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Render.dll</HintPath> <HintPath>..\GameBinaries\VRage.Render.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Render11, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Render11, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Render11.dll</HintPath> <HintPath>..\GameBinaries\VRage.Render11.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\steamcmd\steamapps\common\SpaceEngineersDedicatedServer\DedicatedServer64\VRage.Scripting.dll</HintPath> <HintPath>..\GameBinaries\VRage.Scripting.dll</HintPath>
</Reference> </Reference>
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
<Reference Include="PresentationCore" /> <Reference Include="PresentationCore" />
@@ -158,6 +166,7 @@
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
<DependentUpon>AssemblyInfo.tt</DependentUpon> <DependentUpon>AssemblyInfo.tt</DependentUpon>
</Compile> </Compile>
<Compile Include="Properties\AssemblyInfo1.cs" />
<Compile Include="TorchConfig.cs" /> <Compile Include="TorchConfig.cs" />
<Compile Include="TorchService.cs"> <Compile Include="TorchService.cs">
<SubType>Component</SubType> <SubType>Component</SubType>

View File

@@ -24,6 +24,7 @@ using VRage.Dedicated;
using VRage.FileSystem; using VRage.FileSystem;
using VRage.Game; using VRage.Game;
using VRage.Game.ModAPI; using VRage.Game.ModAPI;
using VRage.Game.ObjectBuilder;
using VRage.Game.SessionComponents; using VRage.Game.SessionComponents;
using VRage.Profiler; using VRage.Profiler;
@@ -59,11 +60,11 @@ namespace Torch.Server
MyPerServerSettings.GameDSName = MyPerServerSettings.GameNameSafe + "Dedicated"; MyPerServerSettings.GameDSName = MyPerServerSettings.GameNameSafe + "Dedicated";
MyPerServerSettings.GameDSDescription = "Your place for space engineering, destruction and exploring."; MyPerServerSettings.GameDSDescription = "Your place for space engineering, destruction and exploring.";
MySessionComponentExtDebug.ForceDisable = true; MySessionComponentExtDebug.ForceDisable = true;
MyPerServerSettings.AppId = 244850u; MyPerServerSettings.AppId = 244850;
var gameVersion = MyPerGameSettings.BasicGameInfo.GameVersion; MyFinalBuildConstants.APP_VERSION = MyPerGameSettings.BasicGameInfo.GameVersion;
MyFinalBuildConstants.APP_VERSION = gameVersion ?? 0; //MyGlobalTypeMetadata.Static.Init();
//TODO: Allows players to filter servers for Torch in the server browser. //TODO: Allows players to filter servers for Torch in the server browser. Need to init Steam before this
//SteamServerAPI.Instance.GameServer.SetKeyValue("SM", "Torch"); //SteamServerAPI.Instance.GameServer.SetKeyValue("SM", "Torch");
} }

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.Server.ViewModels
{
class SteamUserViewModel
{
}
}

View File

@@ -1,185 +1,207 @@
<UserControl x:Class="Torch.Server.Views.ConfigControl" <UserControl x:Class="Torch.Server.Views.ConfigControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Torch.Server.Views" xmlns:local="clr-namespace:Torch.Server.Views"
xmlns:viewModels="clr-namespace:Torch.Server.ViewModels" xmlns:viewModels="clr-namespace:Torch.Server.ViewModels"
mc:Ignorable="d" mc:Ignorable="d"
Background="White"> Background="White">
<UserControl.DataContext> <UserControl.DataContext>
<viewModels:ConfigDedicatedViewModel/> <viewModels:ConfigDedicatedViewModel />
</UserControl.DataContext> </UserControl.DataContext>
<StackPanel> <DockPanel>
<DockPanel> <DockPanel DockPanel.Dock="Top">
<Label Content="World:" DockPanel.Dock="Left"/> <Label Content="World:" DockPanel.Dock="Left" />
<ComboBox Text="{Binding LoadWorld}" ItemsSource="{Binding WorldPaths}" IsEditable="True" Margin="3"/> <ComboBox Text="{Binding LoadWorld}" ItemsSource="{Binding WorldPaths}" IsEditable="True" Margin="3" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel DockPanel.Dock="Bottom">
<StackPanel Margin="3" DockPanel.Dock="Left"> <ScrollViewer IsEnabled="True">
<Label Content="Server Name"/> <StackPanel Orientation="Horizontal">
<TextBox Text="{Binding ServerName}" Margin="3,0,3,3" Width="130"/> <StackPanel Margin="3" DockPanel.Dock="Left">
<Label Content="World Name"/> <Label Content="Server Name" />
<TextBox Text="{Binding WorldName}" Margin="3,0,3,3" Width="130"/> <TextBox Text="{Binding ServerName}" Margin="3,0,3,3" Width="160" />
<Label Content="Whitelist Group ID"/> <Label Content="World Name" />
<TextBox Text="{Binding GroupId}" Margin="3,0,3,3" Width="130"/> <TextBox Text="{Binding WorldName}" Margin="3,0,3,3" Width="160" />
<Label Content="Server IP"/> <Label Content="Whitelist Group ID" />
<StackPanel Orientation="Horizontal" Margin="3,0,3,3"> <TextBox Text="{Binding GroupId}" Margin="3,0,3,3" Width="160" />
<TextBox Text="{Binding IP}" Width="100" Height="20"/> <Label Content="Server IP" />
<Label Content=":"></Label> <StackPanel Orientation="Horizontal" Margin="3,0,3,3">
<TextBox Text="{Binding Port}" Width="50" Height="20"/> <TextBox Text="{Binding IP}" Width="100" Height="20" />
<Label Content=":" Width="12"/>
<TextBox Text="{Binding Port}" Width="48" Height="20" />
</StackPanel>
<CheckBox IsChecked="{Binding IgnoreLastSession}" Content="Ignore Last Session" Margin="3" />
<CheckBox IsChecked="{Binding PauseGameWhenEmpty}" Content="Pause When Empty" Margin="3" />
</StackPanel>
<StackPanel Margin="3">
<Label Content="Banned Players" />
<ListBox ItemsSource="{Binding Banned}" Width="130" Margin="3,0,3,3" Height="100"
MouseDoubleClick="Banned_OnMouseDoubleClick" />
<Label Content="Administrators" />
<ListBox ItemsSource="{Binding Administrators}" Width="130" Margin="3,0,3,3" Height="100"
MouseDoubleClick="Administrators_OnMouseDoubleClick" />
<Label Content="Mods" />
<ListBox ItemsSource="{Binding Mods}" Width="130" Margin="3,0,3,3" Height="100"
MouseDoubleClick="Mods_OnMouseDoubleClick" />
</StackPanel>
</StackPanel> </StackPanel>
<Label Content="Steam Port"/> </ScrollViewer>
<TextBox Text="{Binding SteamPort}" Width="130" Margin="3,0,3,3"/> <ScrollViewer Margin="3" DockPanel.Dock="Right" IsEnabled="True">
<CheckBox IsChecked="{Binding IgnoreLastSession}" Content="Ignore Last Session" Margin="3"/>
<CheckBox IsChecked="{Binding PauseGameWhenEmpty}" Content="Pause When Empty" Margin="3"/>
<Label Content="Banned Players"/>
<ListBox ItemsSource="{Binding Banned}" Width="130" Margin="3,0,3,3" Height="100" MouseDoubleClick="Banned_OnMouseDoubleClick"/>
<Label Content="Administrators"/>
<ListBox ItemsSource="{Binding Administrators}" Width="130" Margin="3,0,3,3" Height="100" MouseDoubleClick="Administrators_OnMouseDoubleClick"/>
<Label Content="Mods"/>
<ListBox ItemsSource="{Binding Mods}" Width="130" Margin="3,0,3,3" Height="100" MouseDoubleClick="Mods_OnMouseDoubleClick"/>
</StackPanel>
<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">
<DockPanel> <DockPanel>
<TextBox Text="{Binding InventorySizeMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding InventorySizeMultiplier}" Margin="3" Width="70" />
<Label Content="Inventory Size"/> <Label Content="Inventory Size" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding RefinerySpeedMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding RefinerySpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Refinery Speed"/> <Label Content="Refinery Speed" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding AssemblerEfficiencyMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding AssemblerEfficiencyMultiplier}" Margin="3" Width="70" />
<Label Content="Assembler Efficiency"/> <Label Content="Assembler Efficiency" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding AssemblerSpeedMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding AssemblerSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Assembler Speed"/> <Label Content="Assembler Speed" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding GrinderSpeedMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding GrinderSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Grinder Speed"/> <Label Content="Grinder Speed" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding HackSpeedMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding HackSpeedMultiplier}" Margin="3" Width="70" />
<Label Content="Hacking Speed"/> <Label Content="Hacking Speed" />
</DockPanel> </DockPanel>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="NPCs"> <Expander Header="NPCs">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
<CheckBox IsChecked="{Binding EnableDrones}" Content="Enable Drones" Margin="3"/> <CheckBox IsChecked="{Binding EnableDrones}" Content="Enable Drones" Margin="3" />
<CheckBox IsChecked="{Binding EnableEncounters}" Content="Enable Encounters" Margin="3"/> <CheckBox IsChecked="{Binding EnableEncounters}" Content="Enable Encounters" Margin="3" />
<CheckBox IsChecked="{Binding EnableSpiders}" Content="Enable Spiders" Margin="3"/> <CheckBox IsChecked="{Binding EnableSpiders}" Content="Enable Spiders" Margin="3" />
<CheckBox IsChecked="{Binding EnableWolves}" Content="Enable Wolves" Margin="3"/> <CheckBox IsChecked="{Binding EnableWolves}" Content="Enable Wolves" Margin="3" />
<CheckBox IsChecked="{Binding EnableCargoShips}" Content="Enable Cargo Ships" Margin="3"/> <CheckBox IsChecked="{Binding EnableCargoShips}" Content="Enable Cargo Ships" Margin="3" />
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="Environment"> <Expander Header="Environment">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
<CheckBox IsChecked="{Binding EnableRealisticSound}" Content="Enable Realistic Sound" Margin="3"/> <CheckBox IsChecked="{Binding EnableRealisticSound}" Content="Enable Realistic Sound"
<CheckBox IsChecked="{Binding EnableAirtightness}" Content="Enable Airtightness" Margin="3"/> Margin="3" />
<CheckBox IsChecked="{Binding EnableOxygen}" Content="Enable Oxygen" Margin="3"/> <CheckBox IsChecked="{Binding EnableAirtightness}" Content="Enable Airtightness" Margin="3" />
<CheckBox IsChecked="{Binding EnableDestructibleBlocks}" Content="Enable Destructible Blocks" Margin="3"/> <CheckBox IsChecked="{Binding EnableOxygen}" Content="Enable Oxygen" Margin="3" />
<CheckBox IsChecked="{Binding EnableToolShake}" Content="Enable Tool Shake" Margin="3"/> <CheckBox IsChecked="{Binding EnableDestructibleBlocks}"
<CheckBox IsChecked="{Binding EnableVoxelDestruction}" Content="Enable Voxel Destruction" Margin="3"/> Content="Enable Destructible Blocks" Margin="3" />
<CheckBox IsChecked="{Binding EnableSunRotation}" Content="Enable Sun Rotation" 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" />
<DockPanel> <DockPanel>
<TextBox Text="{Binding SunRotationInterval}" Margin="3" Width="70"/> <TextBox Text="{Binding SunRotationInterval}" Margin="3" Width="70" />
<Label Content="Sun Rotation Interval (mins)"/> <Label Content="Sun Rotation Interval (mins)" />
</DockPanel> </DockPanel>
<CheckBox IsChecked="{Binding EnableFlora}" Content="Enable Flora" Margin="3"/> <CheckBox IsChecked="{Binding EnableFlora}" Content="Enable Flora" Margin="3" />
<DockPanel> <DockPanel>
<TextBox Text="{Binding FloraDensity}" Margin="3" Width="70"/> <TextBox Text="{Binding FloraDensity}" Margin="3" Width="70" />
<Label Content="Flora Density"/> <Label Content="Flora Density" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding FloraDensityMultiplier}" Margin="3" Width="70"/> <TextBox Text="{Binding FloraDensityMultiplier}" Margin="3" Width="70" />
<Label Content="Flora Density Multiplier"/> <Label Content="Flora Density Multiplier" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding ViewDistance}" Margin="3" Width="70"/> <TextBox Text="{Binding ViewDistance}" Margin="3" Width="70" />
<Label Content="View Distance (meters)"/> <Label Content="View Distance (meters)" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding WorldSize}" Margin="3" Width="70"/> <TextBox Text="{Binding WorldSize}" Margin="3" Width="70" />
<Label Content="World Size (km)"/> <Label Content="World Size (km)" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<ComboBox SelectedItem="{Binding EnvironmentHostility}" ItemsSource="{Binding EnvironmentHostilityValues}" Margin="3" Width="100" DockPanel.Dock="Left"/> <ComboBox SelectedItem="{Binding EnvironmentHostility}"
<Label Content="Environment Hostility"></Label> ItemsSource="{Binding EnvironmentHostilityValues}" Margin="3" Width="100"
DockPanel.Dock="Left" />
<Label Content="Environment Hostility" />
</DockPanel> </DockPanel>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="Players"> <Expander Header="Players">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
<DockPanel> <DockPanel>
<TextBox Text="{Binding MaxPlayers}" Margin="3" Width="70"/> <TextBox Text="{Binding MaxPlayers}" Margin="3" Width="70" />
<Label Content="Max Players"/> <Label Content="Max Players" />
</DockPanel> </DockPanel>
<CheckBox IsChecked="{Binding EnableAutoHealing}" Content="Auto Healing" Margin="3"/> <CheckBox IsChecked="{Binding EnableAutoHealing}" Content="Auto Healing" Margin="3" />
<CheckBox IsChecked="{Binding EnableCopyPaste}" Content="Enable Copy/Paste" Margin="3"/> <CheckBox IsChecked="{Binding EnableCopyPaste}" Content="Enable Copy/Paste" Margin="3" />
<CheckBox IsChecked="{Binding ShowPlayerNamesOnHud}" Content="Show Player Names on HUD" Margin="3"/> <CheckBox IsChecked="{Binding ShowPlayerNamesOnHud}" Content="Show Player Names on HUD"
Margin="3" />
<DockPanel> <DockPanel>
<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>
</StackPanel> </StackPanel>
</Expander> </Expander>
<Expander Header="Miscellaneous"> <Expander Header="Miscellaneous">
<StackPanel Margin="10,0,0,0"> <StackPanel Margin="10,0,0,0">
<DockPanel> <DockPanel>
<TextBox Text="{Binding AutosaveInterval}" Margin="3" Width="70"/> <TextBox Text="{Binding AutosaveInterval}" Margin="3" Width="70" />
<Label Content="Autosave Interval (minutes)"/> <Label Content="Autosave Interval (minutes)" />
</DockPanel> </DockPanel>
<CheckBox IsChecked="{Binding EnableThirdPerson}" Content="Enable 3rd Person Camera" Margin="3"/> <CheckBox IsChecked="{Binding EnableThirdPerson}" Content="Enable 3rd Person Camera"
<CheckBox IsChecked="{Binding EnableConvertToStation}" Content="Enable Convert to Station" Margin="3"/> Margin="3" />
<CheckBox IsChecked="{Binding EnableJetpack}" Content="Enable Jetpack" Margin="3"/> <CheckBox IsChecked="{Binding EnableConvertToStation}" Content="Enable Convert to Station"
<CheckBox IsChecked="{Binding EnableRemoteOwnerRemoval}" Content="Enable Remote Ownership Removal" Margin="3"/> Margin="3" />
<CheckBox IsChecked="{Binding EnableRespawnShips}" Content="Enable Respawn Ships" Margin="3"/> <CheckBox IsChecked="{Binding EnableJetpack}" Content="Enable Jetpack" Margin="3" />
<CheckBox IsChecked="{Binding EnableScripterRole}" Content="Enable Scripter Role" Margin="3"/> <CheckBox IsChecked="{Binding EnableRemoteOwnerRemoval}"
<CheckBox IsChecked="{Binding EnableSpectator}" Content="Enable Spectator Camera" Margin="3"/> Content="Enable Remote Ownership Removal" Margin="3" />
<CheckBox IsChecked="{Binding ResetOwnership}" Content="Reset Ownership" Margin="3"/> <CheckBox IsChecked="{Binding EnableRespawnShips}" Content="Enable Respawn Ships"
<CheckBox IsChecked="{Binding DeleteRespawnShips}" Content="Remove Respawn Ships on Logoff" Margin="3"/> Margin="3" />
<CheckBox IsChecked="{Binding EnableThrusterDamage}" Content="Enable Thruster Damage" Margin="3"/> <CheckBox IsChecked="{Binding EnableScripterRole}" Content="Enable Scripter Role"
<CheckBox IsChecked="{Binding EnableWeapons}" Content="Enable Weapons" Margin="3"/> Margin="3" />
<CheckBox IsChecked="{Binding EnableIngameScripts}" Content="Enable Ingame Scripts" Margin="3"/> <CheckBox IsChecked="{Binding EnableSpectator}" Content="Enable Spectator Camera"
<CheckBox IsChecked="{Binding SpawnWithTools}" Content="Spawn With Tools" Margin="3"/> 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 EnableThrusterDamage}" Content="Enable Thruster Damage"
Margin="3" />
<CheckBox IsChecked="{Binding EnableWeapons}" Content="Enable Weapons" Margin="3" />
<CheckBox IsChecked="{Binding EnableIngameScripts}" Content="Enable Ingame Scripts"
Margin="3" />
<CheckBox IsChecked="{Binding SpawnWithTools}" Content="Spawn With Tools" Margin="3" />
<DockPanel> <DockPanel>
<ComboBox SelectedItem="{Binding GameMode}" ItemsSource="{Binding GameModeValues}" Margin="3" Width="100" DockPanel.Dock="Left"/> <ComboBox SelectedItem="{Binding GameMode}" ItemsSource="{Binding GameModeValues}"
<Label Content="Game Mode"></Label> Margin="3" Width="100" DockPanel.Dock="Left" />
<Label Content="Game Mode" />
</DockPanel> </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" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding MaxBlocksPerPlayer}" Margin="3" Width="70"/> <TextBox Text="{Binding MaxBlocksPerPlayer}" Margin="3" Width="70" />
<Label Content="Max Blocks Per Player"/> <Label Content="Max Blocks Per Player" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding MaxFloatingObjects}" Margin="3" Width="70"/> <TextBox Text="{Binding MaxFloatingObjects}" Margin="3" Width="70" />
<Label Content="Max Floating Objects"/> <Label Content="Max Floating Objects" />
</DockPanel> </DockPanel>
<DockPanel> <DockPanel>
<TextBox Text="{Binding MaxGridSize}" Margin="3" Width="70"/> <TextBox Text="{Binding MaxGridSize}" Margin="3" Width="70" />
<Label Content="Max Grid Size"/> <Label Content="Max Grid Size" />
</DockPanel> </DockPanel>
<DockPanel ToolTip="Increases physics precision at the cost of performance."> <DockPanel ToolTip="Increases physics precision at the cost of performance.">
<TextBox Text="{Binding PhysicsIterations}" Margin="3" Width="70"/> <TextBox Text="{Binding PhysicsIterations}" Margin="3" Width="70" />
<Label Content="Physics Iterations"/> <Label Content="Physics Iterations" />
</DockPanel> </DockPanel>
</StackPanel> </StackPanel>
</Expander> </Expander>
</StackPanel> </StackPanel>
</ScrollViewer> </ScrollViewer>
</DockPanel> </DockPanel>
</StackPanel> </DockPanel>
</UserControl> </UserControl>

View File

@@ -11,16 +11,19 @@
<viewModels:PluginManagerViewModel/> <viewModels:PluginManagerViewModel/>
</UserControl.DataContext> </UserControl.DataContext>
<DockPanel> <DockPanel>
<ListView Width="150" ItemsSource="{Binding Plugins}" SelectedItem="{Binding SelectedPlugin}" Margin="3"> <DockPanel>
<ListView.ItemTemplate> <Button Content="Open Folder" Margin="3" DockPanel.Dock="Bottom" IsEnabled="false"></Button>
<DataTemplate> <ListView Width="150" ItemsSource="{Binding Plugins}" SelectedItem="{Binding SelectedPlugin}" Margin="3">
<TextBlock Text="{Binding Name}"/> <ListView.ItemTemplate>
</DataTemplate> <DataTemplate>
</ListView.ItemTemplate> <TextBlock Text="{Binding Name}"/>
</ListView> </DataTemplate>
</ListView.ItemTemplate>
</ListView>
</DockPanel>
<StackPanel Margin="3"> <StackPanel Margin="3">
<Label Content="{Binding SelectedPlugin.Name}" FontSize="16"/> <Label Content="{Binding SelectedPlugin.Name}" FontSize="16"/>
<Frame Content="{Binding SelectedPlugin.Control}"/> <Frame NavigationUIVisibility="Hidden" Content="{Binding SelectedPlugin.Control}"/>
</StackPanel> </StackPanel>
</DockPanel> </DockPanel>
</UserControl> </UserControl>

View File

@@ -0,0 +1,15 @@
<UserControl x:Class="Torch.Server.Views.PropertyGrid"
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">
<DataGrid x:Name="Grid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn x:Name="NameCol" Width="1*" Header="Name" Binding="{Binding Name}" IsReadOnly="True"/>
<DataGridTemplateColumn x:Name="ValCol" Width="1*" Header="Value"/>
</DataGrid.Columns>
</DataGrid>
</UserControl>

View File

@@ -0,0 +1,68 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Torch.Server.Views
{
/// <summary>
/// Interaction logic for PropertyGrid.xaml
/// </summary>
public partial class PropertyGrid : UserControl
{
public PropertyGrid()
{
InitializeComponent();
}
public void SetObject(object obj)
{
var props = obj.GetType().GetProperties();
foreach (var prop in props)
{
var p = prop.GetValue(obj);
Grid.Items.Add(new PropertyView(p, prop.Name));
}
}
}
public class PropertyView : ViewModel
{
private object _obj;
public string Name { get; }
public string Value { get { return _obj.ToString(); } }
public DataTemplate ValueEditTemplate;
public PropertyView(object obj, string name)
{
Name = name;
_obj = obj;
ValueEditTemplate = new DataTemplate();
}
}
/*
public class PropertyGridDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (item is IEnumerable)
{
}
}
}*/
}

View File

@@ -6,7 +6,7 @@
xmlns:local="clr-namespace:Torch.Server" xmlns:local="clr-namespace:Torch.Server"
xmlns:views="clr-namespace:Torch.Server.Views" xmlns:views="clr-namespace:Torch.Server.Views"
mc:Ignorable="d" mc:Ignorable="d"
Title="Torch" Height="600" Width="800"> Title="Torch" Height="800" Width="800">
<DockPanel> <DockPanel>
<StackPanel DockPanel.Dock="Top" Margin="5,5,5,5" Orientation="Horizontal"> <StackPanel DockPanel.Dock="Top" Margin="5,5,5,5" Orientation="Horizontal">
<Button x:Name="BtnStart" Content="Start" Height="24" Width="75" Margin="5,0,5,0" HorizontalAlignment="Left" Click="BtnStart_Click" IsDefault="True"/> <Button x:Name="BtnStart" Content="Start" Height="24" Width="75" Margin="5,0,5,0" HorizontalAlignment="Left" Click="BtnStart_Click" IsDefault="True"/>
@@ -17,13 +17,13 @@
</StackPanel> </StackPanel>
<TabControl x:Name="TabControl" DockPanel.Dock="Bottom" Margin="5,0,5,5"> <TabControl x:Name="TabControl" DockPanel.Dock="Bottom" Margin="5,0,5,5">
<TabItem Header="Configuration"> <TabItem Header="Configuration">
<StackPanel> <DockPanel>
<DockPanel> <DockPanel DockPanel.Dock="Top">
<Label Content="Instance Path: " Margin="3"/> <Label Content="Instance Path: " Margin="3"/>
<TextBox x:Name="InstancePathBox" Margin="3" Height="20" TextChanged="InstancePathBox_OnTextChanged"/> <TextBox x:Name="InstancePathBox" Margin="3" Height="20" TextChanged="InstancePathBox_OnTextChanged"/>
</DockPanel> </DockPanel>
<views:ConfigControl x:Name="ConfigControl" Margin="3"/> <views:ConfigControl x:Name="ConfigControl" Margin="3" DockPanel.Dock="Bottom"/>
</StackPanel> </DockPanel>
</TabItem> </TabItem>
<TabItem Header="Chat/Players"> <TabItem Header="Chat/Players">
<DockPanel> <DockPanel>

View File

@@ -0,0 +1,12 @@
<UserControl x:Class="Torch.Server.Views.WorldSelectControl"
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" >
<DockPanel>
<Label Content="World: "/>
<ComboBox x:Name="WorldList" IsEditable="True" Margin="3"/>
</DockPanel>
</UserControl>

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Sandbox.Game.Gui;
namespace Torch.Server.Views
{
/// <summary>
/// Interaction logic for WorldSelectControl.xaml
/// </summary>
public partial class WorldSelectControl : UserControl
{
public WorldSelectControl()
{
InitializeComponent();
//LoadWorlds();
}
public void LoadWorlds(string path = null)
{
WorldList.Items.Clear();
var worlds = new MyLoadWorldInfoListResult(path);
worlds.Task.Wait();
foreach (var world in worlds.AvailableSaves)
{
WorldList.Items.Add(world.Item1);
}
}
}
}

View File

@@ -21,10 +21,11 @@ namespace Torch.Commands
public Type Module { get; } public Type Module { get; }
public List<string> Path { get; } = new List<string>(); public List<string> Path { get; } = new List<string>();
public ITorchPlugin Plugin { get; } public ITorchPlugin Plugin { get; }
public string SyntaxHelp { get; }
private readonly MethodInfo _method; private readonly MethodInfo _method;
private ParameterInfo[] _parameters; private ParameterInfo[] _parameters;
private int? _requiredParamCount; private int? _requiredParamCount;
public string SyntaxHelp { get; }
public Command(ITorchPlugin plugin, MethodInfo commandMethod) public Command(ITorchPlugin plugin, MethodInfo commandMethod)
{ {
@@ -76,7 +77,7 @@ namespace Torch.Commands
} }
} }
_requiredParamCount = _requiredParamCount ?? 0; _requiredParamCount = _requiredParamCount ?? _parameters.Length;
LogManager.GetLogger(nameof(Command)).Debug($"Params: {_parameters.Length} ({_requiredParamCount} required)"); LogManager.GetLogger(nameof(Command)).Debug($"Params: {_parameters.Length} ({_requiredParamCount} required)");
SyntaxHelp = sb.ToString(); SyntaxHelp = sb.ToString();
} }
@@ -97,7 +98,7 @@ namespace Torch.Commands
return false; return false;
} }
//Fill omitted default parameters //Fill remaining parameters with default values
for (var i = 0; i < parameters.Length; i++) for (var i = 0; i < parameters.Length; i++)
{ {
if (parameters[i] == null) if (parameters[i] == null)
@@ -109,13 +110,6 @@ namespace Torch.Commands
_method.Invoke(moduleInstance, parameters); _method.Invoke(moduleInstance, parameters);
return true; return true;
} }
public void Invoke(CommandContext context)
{
var moduleInstance = (CommandModule)Activator.CreateInstance(Module);
moduleInstance.Context = context;
_method.Invoke(moduleInstance, null);
}
} }
public static class Extensions public static class Extensions

View File

@@ -100,11 +100,13 @@ namespace Torch.Commands
var splitArgs = Regex.Matches(argText, "(\"[^\"]+\"|\\S+)").Cast<Match>().Select(x => x.ToString().Replace("\"", "")).ToList(); var splitArgs = Regex.Matches(argText, "(\"[^\"]+\"|\\S+)").Cast<Match>().Select(x => x.ToString().Replace("\"", "")).ToList();
_log.Trace($"Invoking {cmdPath} for player {player.DisplayName}"); _log.Trace($"Invoking {cmdPath} for player {player.DisplayName}");
var context = new CommandContext(_torch, command.Plugin, player, argText, splitArgs); var context = new CommandContext(_torch, command.Plugin, player, argText, splitArgs);
//command.Invoke(context); _torch.Invoke(() =>
if (command.TryInvoke(context)) {
_log.Info($"Player {player.DisplayName} ran command '{msg.Text}'"); if (command.TryInvoke(context))
else _log.Info($"Player {player.DisplayName} ran command '{msg.Text}'");
context.Respond($"Invalid Syntax: {command.SyntaxHelp}"); else
context.Respond($"Invalid Syntax: {command.SyntaxHelp}");
});
} }
} }
} }

View File

@@ -27,10 +27,7 @@ namespace Torch.Managers
public void Init() public void Init()
{ {
//HACK NetworkManager.Instance.RegisterNetworkHandlers(new ChatIntercept());
MyMultiplayer.Static.ChatMessageReceived += Static_ChatMessageReceived;
_log.Warn("Chat intercept broken, chat hiding will not work!");
//NetworkManager.Instance.RegisterNetworkHandlers(new ChatIntercept());
} }
private void Static_ChatMessageReceived(ulong arg1, string arg2, SteamSDK.ChatEntryTypeEnum arg3) private void Static_ChatMessageReceived(ulong arg1, string arg2, SteamSDK.ChatEntryTypeEnum arg3)
@@ -70,28 +67,6 @@ namespace Torch.Managers
public override bool Handle(ulong remoteUserId, CallSite site, BitStream stream, object obj, MyPacket packet) public override bool Handle(ulong remoteUserId, CallSite site, BitStream stream, object obj, MyPacket packet)
{ {
/*
var msg = new ChatMsg();
var msgLength = stream.ByteLength - stream.BytePosition - 8;
var bytes = new byte[msgLength];
stream.ReadBytes(bytes, stream.BytePosition, msgLength);
msg.Text = Encoding.Unicode.GetString(bytes);
msg.Author = stream.ReadUInt64();
var log = LogManager.GetLogger("HandleDebug");
var sb = new StringBuilder();
foreach (char c in msg.Text.ToCharArray())
{
sb.Append(Convert.ToString(c, 2).PadLeft(16, '0'));
}
log.Debug(sb.ToString());*/
//stream.ResetRead(packet);
//var msg = MySerializer.CreateAndRead<ChatMsg>(stream);
var msg = new ChatMsg(); var msg = new ChatMsg();
Serialize(site.MethodInfo, stream, ref msg); Serialize(site.MethodInfo, stream, ref msg);

View File

@@ -75,6 +75,7 @@ namespace Torch.Managers
public void InitConcealment(double concealInterval) public void InitConcealment(double concealInterval)
{ {
return;
Log.Info($"Initializing concealment to run every {concealInterval}ms"); Log.Info($"Initializing concealment to run every {concealInterval}ms");
_concealedAabbTree = new MyDynamicAABBTreeD(MyConstants.GAME_PRUNING_STRUCTURE_AABB_EXTENSION); _concealedAabbTree = new MyDynamicAABBTreeD(MyConstants.GAME_PRUNING_STRUCTURE_AABB_EXTENSION);
_concealTimer = new Timer(concealInterval); _concealTimer = new Timer(concealInterval);

View File

@@ -116,7 +116,7 @@ namespace Torch.Managers
var networkId = stream.ReadNetworkId(); var networkId = stream.ReadNetworkId();
//this value is unused, but removing this line corrupts the rest of the stream //this value is unused, but removing this line corrupts the rest of the stream
var blockedNetworkId = stream.ReadNetworkId(); var blockedNetworkId = stream.ReadNetworkId();
var eventId = (uint)stream.ReadByte(); var eventId = (uint)stream.ReadInt16();
CallSite site; CallSite site;
@@ -152,7 +152,8 @@ namespace Torch.Managers
//we're handling the network live in the game thread, this needs to go as fast as possible //we're handling the network live in the game thread, this needs to go as fast as possible
var discard = false; var discard = false;
Parallel.ForEach(_networkHandlers, handler => foreach (var handler in _networkHandlers)
//Parallel.ForEach(_networkHandlers, handler =>
{ {
try try
{ {
@@ -164,7 +165,7 @@ namespace Torch.Managers
//ApplicationLog.Error(ex.ToString()); //ApplicationLog.Error(ex.ToString());
_log.Error(ex); _log.Error(ex);
} }
}); };
//one of the handlers wants us to discard this packet //one of the handlers wants us to discard this packet
if (discard) if (discard)

14
Torch/PluginManifest.cs Normal file
View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch
{
public class PluginManifest
{
public string Repository { get; set; }
public string Version { get; set; }
}
}

View File

@@ -32,48 +32,37 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="HavokWrapper, Version=1.0.6278.22649, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\GameBinaries\HavokWrapper.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.1\lib\net45\NLog.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Sandbox.Common, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Octokit, Version=0.24.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <HintPath>..\packages\Octokit.0.24.0\lib\net45\Octokit.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Common.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="Sandbox.Game, Version=0.1.6108.20542, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="Sandbox.Common">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\Sandbox.Common.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Game.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="Sandbox.Graphics, Version=0.1.6108.20417, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="Sandbox.Game">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\Sandbox.Game.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\Sandbox.Graphics.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="SpaceEngineers.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="Sandbox.Graphics">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\Sandbox.Graphics.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.Game.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SpaceEngineers.Game">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\SpaceEngineers.Game.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.ObjectBuilders.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SpaceEngineers.ObjectBuilders">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="SpaceEngineersDedicated"> <Reference Include="SpaceEngineers.ObjectBuilders.XmlSerializers">
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\DedicatedServer64\SpaceEngineersDedicated.exe</HintPath> <HintPath>..\GameBinaries\SpaceEngineers.ObjectBuilders.XmlSerializers.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="SteamSDK, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="SteamSDK">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\SteamSDK.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\SteamSDK.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
@@ -83,64 +72,44 @@
<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="VRage, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Audio, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Audio">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Audio.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Audio.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Game, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Dedicated">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Dedicated.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Game.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Game.XmlSerializers, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Game">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Game.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Game.XmlSerializers.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Input, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Game.XmlSerializers">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Game.XmlSerializers.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Input.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Library, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Input">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Input.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Library.dll</HintPath> </Reference>
<Private>False</Private> <Reference Include="VRage.Library">
<HintPath>..\GameBinaries\VRage.Library.dll</HintPath>
</Reference> </Reference>
<Reference Include="VRage.Math"> <Reference Include="VRage.Math">
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Math.dll</HintPath> <HintPath>..\GameBinaries\VRage.Math.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Native, Version=0.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Native">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Native.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Native.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.OpenVRWrapper, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.OpenVRWrapper">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.OpenVRWrapper.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.OpenVRWrapper.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Render, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="VRage.Render">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Render.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Render.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Render11, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Render11">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Render11.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Render11.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="VRage.Scripting, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64"> <Reference Include="VRage.Scripting">
<SpecificVersion>False</SpecificVersion> <HintPath>..\GameBinaries\VRage.Scripting.dll</HintPath>
<HintPath>C:\Program Files (x86)\Steam\steamapps\common\SpaceEngineers\Bin64\VRage.Scripting.dll</HintPath>
<Private>False</Private>
</Reference> </Reference>
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
</ItemGroup> </ItemGroup>
@@ -162,6 +131,7 @@
<Compile Include="Managers\NetworkManager\NetworkHandlerBase.cs" /> <Compile Include="Managers\NetworkManager\NetworkHandlerBase.cs" />
<Compile Include="Managers\NetworkManager\NetworkManager.cs" /> <Compile Include="Managers\NetworkManager\NetworkManager.cs" />
<Compile Include="Managers\MultiplayerManager.cs" /> <Compile Include="Managers\MultiplayerManager.cs" />
<Compile Include="PluginManifest.cs" />
<Compile Include="PluginOptions.cs" /> <Compile Include="PluginOptions.cs" />
<Compile Include="Reflection.cs" /> <Compile Include="Reflection.cs" />
<Compile Include="Managers\ScriptingManager.cs" /> <Compile Include="Managers\ScriptingManager.cs" />
@@ -169,6 +139,7 @@
<Compile Include="SteamService.cs" /> <Compile Include="SteamService.cs" />
<Compile Include="TorchConfig.cs" /> <Compile Include="TorchConfig.cs" />
<Compile Include="TorchPluginBase.cs" /> <Compile Include="TorchPluginBase.cs" />
<Compile Include="Updater\PluginUpdater.cs" />
<Compile Include="ViewModels\ModViewModel.cs" /> <Compile Include="ViewModels\ModViewModel.cs" />
<Compile Include="Collections\MTObservableCollection.cs" /> <Compile Include="Collections\MTObservableCollection.cs" />
<Compile Include="Extensions\MyPlayerCollectionExtensions.cs" /> <Compile Include="Extensions\MyPlayerCollectionExtensions.cs" />

View File

@@ -192,7 +192,13 @@ namespace Torch
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{ {
Log.Fatal((Exception)e.ExceptionObject); var ex = (Exception)e.ExceptionObject;
Log.Fatal(ex);
if (ex is ReflectionTypeLoadException rex)
{
foreach (var x in rex.LoaderExceptions)
Log.Fatal(x);
}
Console.ReadLine(); Console.ReadLine();
Environment.Exit(-1); Environment.Exit(-1);
} }

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Octokit;
namespace Torch.Updater
{
public class PluginUpdater
{
public async Task CheckForUpdate(PluginManifest manifest)
{
var split = manifest.Repository.Split('/');
if (split.Length != 2)
return;
var client = new GitHubClient(new ProductHeaderValue("Torch"));
var releases = await client.Repository.Release.GetAll(split[0], split[1]);
var currentVersion = new Version(manifest.Version);
var latestVersion = new Version(releases[0].TagName);
if (latestVersion > currentVersion)
{
//update
}
}
}
}

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NLog" version="4.4.1" targetFramework="net461" /> <package id="NLog" version="4.4.1" targetFramework="net461" />
<package id="Octokit" version="0.24.0" targetFramework="net461" />
</packages> </packages>