Compare commits

..

4 Commits

Author SHA1 Message Date
e9a9e180a8 Move Init back to where it was to prevent UI init issues 2023-06-27 15:02:13 -04:00
a8dfaf6239 Fix MyEntities init 2023-06-27 13:04:52 -04:00
bbdd1c7e01 Update package dependency version 2023-06-21 22:41:31 -04:00
e70e1ca4e6 Fix NRE in MyGameService static constructor 2023-06-18 01:06:22 -04:00
5 changed files with 21 additions and 11 deletions

View File

@@ -11,7 +11,7 @@
<repository type="git" url="https://github.com/PveTeam/Torch" />
<dependencies>
<group targetFramework="net7.0-windows7.0">
<dependency id="SpaceEngineersDedicated.ReferenceAssemblies" version="1.202.117" />
<dependency id="SpaceEngineersDedicated.ReferenceAssemblies" version="1.202.120" />
<dependency id="Torch.Server" version="torchVersion" />
</group>
</dependencies>

View File

@@ -103,6 +103,7 @@ namespace Torch.Server
}
#endif
var uiThread = new Thread(() =>
{
var ui = new TorchUI(_server);
@@ -115,9 +116,9 @@ namespace Torch.Server
uiThread.SetApartmentState(ApartmentState.STA);
uiThread.Start();
_server.Init();
if (Config.Autostart || Config.TempAutostart)
{
Config.TempAutostart = false;

View File

@@ -56,9 +56,7 @@ namespace Torch.Server
AddManager(new EntityControlManager(this));
AddManager(new RemoteAPIManager(this));
var sessionManager = Managers.GetManager<ITorchSessionManager>();
sessionManager.AddFactory(x => new MultiplayerManagerDedicated(this));
sessionManager.SessionStateChanged += OnSessionStateChanged;
// Needs to be done at some point after MyVRageWindows.Init
// where the debug listeners are registered
@@ -128,6 +126,10 @@ namespace Torch.Server
{
Log.Info("Initializing server");
base.Init();
var sessionManager = Managers.GetManager<ITorchSessionManager>();
sessionManager.AddFactory(x => new MultiplayerManagerDedicated(this));
sessionManager.SessionStateChanged += OnSessionStateChanged;
GetManager<InstanceManager>().LoadInstance(InstancePath);
CanRun = true;
Initialized?.Invoke(this);

View File

@@ -10,6 +10,7 @@ using Sandbox;
using Sandbox.Game;
using Sandbox.Game.Multiplayer;
using Sandbox.Game.Screens.Helpers;
using SpaceEngineers.Game;
using Torch.API;
using Torch.API.Managers;
using Torch.API.ModAPI;
@@ -113,12 +114,6 @@ namespace Torch
Plugins = new PluginManager(this);
#pragma warning restore CS0618
var sessionManager = new TorchSessionManager(this);
sessionManager.AddFactory((x) => Sync.IsServer ? new ChatManagerServer(this) : new ChatManagerClient(this));
sessionManager.AddFactory((x) => Sync.IsServer ? new CommandManager(this) : null);
sessionManager.AddFactory((x) => new EntityManager(this));
Managers.AddManager(sessionManager);
Managers.AddManager(new PatchManager(this));
Managers.AddManager(new FilesystemManager(this));
Managers.AddManager(new UpdateManager(this));
@@ -253,6 +248,8 @@ namespace Torch
public virtual void Init()
{
Debug.Assert(!_init, "Torch instance is already initialized.");
SpaceEngineersGame.SetupBasicGameInfo();
SpaceEngineersGame.SetupPerGameSettings();
VRageGame.SetupVersionInfo();
Debug.Assert(MyPerGameSettings.BasicGameInfo.GameVersion != null, "MyPerGameSettings.BasicGameInfo.GameVersion != null");
@@ -286,6 +283,15 @@ namespace Torch
Game = new VRageGame(this, TweakGameSettings, SteamAppName, SteamAppId, InstancePath, RunArgs);
if (!Game.WaitFor(VRageGame.GameState.Stopped))
Log.Warn("Failed to wait for game to be initialized");
var sessionManager = new TorchSessionManager(this);
sessionManager.AddFactory((x) => Sync.IsServer ? new ChatManagerServer(this) : new ChatManagerClient(this));
sessionManager.AddFactory((x) => Sync.IsServer ? new CommandManager(this) : null);
sessionManager.AddFactory((x) => new EntityManager(this));
Managers.AddManager(sessionManager);
Managers.Attach();
_init = true;

View File

@@ -152,6 +152,7 @@ namespace Torch
Environment.SetEnvironmentVariable("SteamAppId", _appSteamId.ToString());
MyVRageWindows.Init("SpaceEngineersDedicated", MySandboxGame.Log, null, false);
SpaceEngineersGame.SetupPerGameSettings();
SpaceEngineersGame.SetupBasicGameInfo();
MySessionComponentExtDebug.ForceDisable = true;
MyPerGameSettings.SendLogToKeen = false;
// SpaceEngineersGame.SetupAnalytics();