23 lines
796 B
C#
23 lines
796 B
C#
// src/AcDream.Plugin.Abstractions/IPluginHost.cs
|
|
namespace AcDream.Plugin.Abstractions;
|
|
|
|
/// <summary>
|
|
/// Entry point for a plugin into the acdream runtime. The surface will grow
|
|
/// across phases as more systems come online.
|
|
/// </summary>
|
|
public interface IPluginHost
|
|
{
|
|
/// <summary>
|
|
/// <see langword="true"/> when <see cref="Ui"/> registrations can be
|
|
/// projected by this host. No-window hosts return <see langword="false"/>
|
|
/// and expose <see cref="NoOpUiRegistry.Instance"/> so a plugin may keep
|
|
/// one code path while deliberately omitting presentation work.
|
|
/// </summary>
|
|
bool HasUi { get; }
|
|
|
|
IPluginLogger Log { get; }
|
|
IGameState State { get; }
|
|
IEvents Events { get; }
|
|
ISelectionService Selection { get; }
|
|
IUiRegistry Ui { get; }
|
|
}
|