Skip to content

Commit 747eb1d

Browse files
authored
Add ignorelast session support for hosts (#519)
1 parent 09ddad4 commit 747eb1d

5 files changed

Lines changed: 15 additions & 8 deletions

File tree

‎Torch.API/ITorchBase.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public interface ITorchBase
117117
/// <summary>
118118
/// Initialize the Torch instance. Before this <see cref="Start"/> is invalid.
119119
/// </summary>
120-
void Init();
120+
void Init(bool ignorelastsession = false);
121121

122122
/// <summary>
123123
/// Disposes the Torch instance. After this <see cref="Start"/> is invalid.

‎Torch.Server/Initializer.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,13 @@ public bool Initialize(string[] args)
132132
return true;
133133
}
134134

135-
public void Run()
135+
public void Run(bool ignorelastsession = false)
136136
{
137137
_server = new TorchServer(Config);
138138

139139
if (Config.NoGui)
140140
{
141-
_server.Init();
141+
_server.Init(ignorelastsession);
142142
_server.Start();
143143
}
144144
else
@@ -153,7 +153,7 @@ public void Run()
153153

154154
var gameThread = new Thread(() =>
155155
{
156-
_server.Init();
156+
_server.Init(ignorelastsession);
157157

158158
if (Config.Autostart || Config.TempAutostart)
159159
{

‎Torch.Server/Program.cs‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ public static void Main(string[] args)
7373
if (!initializer.Initialize(args))
7474
return;
7575

76-
initializer.Run();
76+
77+
78+
initializer.Run(args.Contains("-ignorelastsession"));
7779
} catch (Exception runException)
7880
{
7981
var log = LogManager.GetCurrentClassLogger();

‎Torch.Server/TorchServer.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ public float SimulationRatio
138138
public int OnlinePlayers { get => _players; private set => SetValue(ref _players, value); }
139139

140140
/// <inheritdoc />
141-
public override void Init()
141+
public override void Init(bool ignorelastsession)
142142
{
143143
Log.Info("Initializing server");
144144
MySandboxGame.IsDedicated = true;
145-
base.Init();
145+
base.Init(ignorelastsession);
146146
Managers.GetManager<ITorchSessionManager>().SessionStateChanged += OnSessionStateChanged;
147147
GetManager<InstanceManager>().LoadInstance(Config.InstancePath);
148148
CanRun = true;

‎Torch/TorchBase.cs‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ public Task InvokeAsync(Action action, [CallerMemberName] string caller = "")
306306
protected abstract string SteamAppName { get; }
307307

308308
/// <inheritdoc />
309-
public virtual void Init()
309+
public virtual void Init(bool ignoreLastSession)
310310
{
311311
Debug.Assert(!_init, "Torch instance is already initialized.");
312312
SpaceEngineersGame.SetupBasicGameInfo();
@@ -336,6 +336,11 @@ public virtual void Init()
336336
Log.Info($"Executing directory: {AppDomain.CurrentDomain.BaseDirectory}");
337337

338338
Managers.GetManager<PluginManager>().LoadPlugins();
339+
340+
//if ignoreLastSession is true, add -ignorelastsession to the command line args
341+
if (ignoreLastSession)
342+
RunArgs = new[] {"-ignorelastsession"};
343+
339344
Game = new VRageGame(this, TweakGameSettings, SteamAppName, SteamAppId, Config.InstancePath, RunArgs);
340345
if (!Game.WaitFor(VRageGame.GameState.Stopped))
341346
Log.Warn("Failed to wait for game to be initialized");

0 commit comments

Comments
 (0)