Use external library for API interface and IPC.

This commit is contained in:
Ottermandias 2022-10-08 02:02:33 +02:00
parent b3f048bfe6
commit 918d5db6a6
69 changed files with 4026 additions and 1873 deletions

65
tmp/Ipc/Redraw.cs Normal file
View file

@ -0,0 +1,65 @@
using System;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin;
using Penumbra.Api.Enums;
using Penumbra.Api.Helpers;
namespace Penumbra.Api;
public static partial class Ipc
{
public static class RedrawAll
{
public const string Label = $"Penumbra.{nameof( RedrawAll )}";
public static ActionProvider< RedrawType > Provider( DalamudPluginInterface pi, Action< RedrawType > action )
=> new(pi, Label, action);
public static ActionSubscriber< RedrawType > Subscriber( DalamudPluginInterface pi )
=> new(pi, Label);
}
public static class RedrawObject
{
public const string Label = $"Penumbra.{nameof( RedrawObject )}";
public static ActionProvider< GameObject, RedrawType > Provider( DalamudPluginInterface pi, Action< GameObject, RedrawType > action )
=> new(pi, Label, action);
public static ActionSubscriber< GameObject, RedrawType > Subscriber( DalamudPluginInterface pi )
=> new(pi, Label);
}
public static class RedrawObjectByIndex
{
public const string Label = $"Penumbra.{nameof( RedrawObjectByIndex )}";
public static ActionProvider< int, RedrawType > Provider( DalamudPluginInterface pi, Action< int, RedrawType > action )
=> new(pi, Label, action);
public static ActionSubscriber< int, RedrawType > Subscriber( DalamudPluginInterface pi )
=> new(pi, Label);
}
public static class RedrawObjectByName
{
public const string Label = $"Penumbra.{nameof( RedrawObjectByName )}";
public static ActionProvider< string, RedrawType > Provider( DalamudPluginInterface pi, Action< string, RedrawType > action )
=> new(pi, Label, action);
public static ActionSubscriber< string, RedrawType > Subscriber( DalamudPluginInterface pi )
=> new(pi, Label);
}
public static class GameObjectRedrawn
{
public const string Label = $"Penumbra.{nameof( GameObjectRedrawn )}";
public static EventProvider< nint, int > Provider( DalamudPluginInterface pi, Action add, Action del )
=> new(pi, Label, add, del);
public static EventSubscriber< nint, int > Subscriber( DalamudPluginInterface pi, params Action< nint, int >[] actions )
=> new(pi, Label, actions);
}
}