using Dalamud.Plugin; using Penumbra.Api.Api; using Penumbra.Api.Enums; using Penumbra.Api.Helpers; namespace Penumbra.Api.IpcSubscribers; /// public sealed class RedrawObject(IDalamudPluginInterface pi) : ActionSubscriber(pi, Label) { /// The label. public const string Label = $"Penumbra.{nameof(RedrawObject)}.V5"; /// public void Invoke(int gameObjectIndex, RedrawType setting = RedrawType.Redraw) => base.Invoke(gameObjectIndex, (int)setting); /// Create a provider. public static ActionProvider Provider(IDalamudPluginInterface pi, IPenumbraApiRedraw api) => new(pi, Label, (a, b) => api.RedrawObject(a, (RedrawType)b)); } /// public sealed class RedrawAll(IDalamudPluginInterface pi) : ActionSubscriber(pi, Label) { /// The label. public const string Label = $"Penumbra.{nameof(RedrawAll)}.V5"; /// public void Invoke(RedrawType setting = RedrawType.Redraw) => base.Invoke((int)setting); /// Create a provider. public static ActionProvider Provider(IDalamudPluginInterface pi, IPenumbraApiRedraw api) => new(pi, Label, a => api.RedrawAll((RedrawType)a)); } /// public static class GameObjectRedrawn { /// The label. public const string Label = $"Penumbra.{nameof(GameObjectRedrawn)}"; /// Create a new event subscriber. public static EventSubscriber Subscriber(IDalamudPluginInterface pi, params Action[] actions) => new(pi, Label, actions); /// Create a provider. public static EventProvider Provider(IDalamudPluginInterface pi, IPenumbraApiRedraw api) => new(pi, Label, t => api.GameObjectRedrawn += t.Invoke, t => api.GameObjectRedrawn -= t.Invoke); }