using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Torch.API.Managers; using VRage.Game.ModAPI; namespace Torch.API { public interface ITorchBase { event Action SessionLoading; event Action SessionLoaded; event Action SessionUnloading; event Action SessionUnloaded; ITorchConfig Config { get; } IMultiplayerManager Multiplayer { get; } IPluginManager Plugins { get; } Version TorchVersion { get; } void Invoke(Action action); void InvokeBlocking(Action action); Task InvokeAsync(Action action); string[] RunArgs { get; set; } bool IsOnGameThread(); void Start(); void Stop(); /// /// Initializes a save of the game. /// /// Id of the player who initiated the save. void Save(long callerId); void Init(); T GetManager() where T : class, IManager; } public interface ITorchServer : ITorchBase { string InstancePath { get; } } public interface ITorchClient : ITorchBase { } }