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
}
}