New saving system with proper waiting for file flush
Command context for servers now supports Respond() Chat manager now treats the steam ID Sync.MyId as a local destination, and processes the event accordingly. Save makes better use of Task<> Restart actually waits for save PlayerCollectionExtension uses a dictionary lookup for TryGetBySteamId Shutting the UI window properly closes Torch Torch Dispose renamed to Destroy, VRage Dispose marked as obsolete (do not use)
This commit is contained in:
@@ -18,21 +18,25 @@ namespace Torch.API
|
||||
/// <summary>
|
||||
/// Fired when the session begins loading.
|
||||
/// </summary>
|
||||
[Obsolete("Prefer using the TorchSessionManager.SessionStateChanged event")]
|
||||
event Action SessionLoading;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Fired when the session finishes loading.
|
||||
/// </summary>
|
||||
[Obsolete("Prefer using the TorchSessionManager.SessionStateChanged event")]
|
||||
event Action SessionLoaded;
|
||||
|
||||
/// <summary>
|
||||
/// Fires when the session begins unloading.
|
||||
/// </summary>
|
||||
[Obsolete("Prefer using the TorchSessionManager.SessionStateChanged event")]
|
||||
event Action SessionUnloading;
|
||||
|
||||
/// <summary>
|
||||
/// Fired when the session finishes unloading.
|
||||
/// </summary>
|
||||
[Obsolete("Prefer using the TorchSessionManager.SessionStateChanged event")]
|
||||
event Action SessionUnloaded;
|
||||
|
||||
/// <summary>
|
||||
@@ -90,15 +94,17 @@ namespace Torch.API
|
||||
void Stop();
|
||||
|
||||
/// <summary>
|
||||
/// Restart the Torch instance.
|
||||
/// Restart the Torch instance, blocking until the restart has been performed.
|
||||
/// </summary>
|
||||
void Restart();
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a save of the game.
|
||||
/// </summary>
|
||||
/// <param name="callerId">Id of the player who initiated the save.</param>
|
||||
Task Save(long callerId);
|
||||
/// <param name="timeoutMs">timeout before the save is treated as failed, or -1 for no timeout</param>
|
||||
/// <param name="exclusive">Only start saving if we aren't already saving</param>
|
||||
/// <returns>Future result of the save, or null if one is in progress and in exclusive mode</returns>
|
||||
Task<GameSaveResult> Save(int timeoutMs = -1, bool exclusive = false);
|
||||
|
||||
/// <summary>
|
||||
/// Initialize the Torch instance. Before this <see cref="Start"/> is invalid.
|
||||
@@ -108,7 +114,7 @@ namespace Torch.API
|
||||
/// <summary>
|
||||
/// Disposes the Torch instance. After this <see cref="Start"/> is invalid.
|
||||
/// </summary>
|
||||
void Dispose();
|
||||
void Destroy();
|
||||
|
||||
/// <summary>
|
||||
/// The current state of the game this instance of torch is controlling.
|
||||
|
44
Torch.API/Session/GameSaveResult.cs
Normal file
44
Torch.API/Session/GameSaveResult.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Torch.API.Session
|
||||
{
|
||||
/// <summary>
|
||||
/// The result of a save operation
|
||||
/// </summary>
|
||||
public enum GameSaveResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Successfully saved
|
||||
/// </summary>
|
||||
Success = 0,
|
||||
|
||||
/// <summary>
|
||||
/// The game wasn't ready to be saved
|
||||
/// </summary>
|
||||
GameNotReady = -1,
|
||||
|
||||
/// <summary>
|
||||
/// Failed to take the snapshot of the current world state
|
||||
/// </summary>
|
||||
FailedToTakeSnapshot = -2,
|
||||
|
||||
/// <summary>
|
||||
/// Failed to save the snapshot to disk
|
||||
/// </summary>
|
||||
FailedToSaveToDisk = -3,
|
||||
|
||||
/// <summary>
|
||||
/// An unknown error occurred
|
||||
/// </summary>
|
||||
UnknownError = -4,
|
||||
|
||||
/// <summary>
|
||||
/// The save operation timed out
|
||||
/// </summary>
|
||||
TimedOut = -5
|
||||
}
|
||||
}
|
@@ -187,6 +187,7 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ServerState.cs" />
|
||||
<Compile Include="ModAPI\TorchAPI.cs" />
|
||||
<Compile Include="Session\GameSaveResult.cs" />
|
||||
<Compile Include="Session\ITorchSession.cs" />
|
||||
<Compile Include="Session\ITorchSessionManager.cs" />
|
||||
<Compile Include="Session\TorchSessionState.cs" />
|
||||
|
Reference in New Issue
Block a user