using System; namespace Torch.API.Plugins { public interface ITorchPlugin : IDisposable { /// /// A unique ID for the plugin. /// Guid Id { get; } /// /// The version of the plugin. /// string Version { get; } /// /// The name of the plugin. /// string Name { get; } /// /// This is called before the game loop is started. /// /// Torch instance void Init(ITorchBase torchBase); /// /// This is called on the game thread after each tick. /// void Update(); /// /// Plugin's enabled state. Mainly for UI niceness /// PluginState State { get; } } public enum PluginState { NotInitialized, DisabledError, DisabledUser, UpdateRequired, UninstallRequested, NotInstalled, MissingDependency, Enabled } }