mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2025-12-12 18:27:24 +01:00
Update Penumbra feature checking
This commit is contained in:
parent
8f8ab7a224
commit
5e4b225081
5 changed files with 22 additions and 20 deletions
BIN
Glamourer.zip
BIN
Glamourer.zip
Binary file not shown.
|
|
@ -10,12 +10,13 @@ namespace Glamourer.Api;
|
|||
|
||||
public class PenumbraAttach : IDisposable
|
||||
{
|
||||
public const int RequiredPenumbraShareVersion = 4;
|
||||
public const int RequiredPenumbraBreakingVersion = 4;
|
||||
public const int RequiredPenumbraFeatureVersion = 0;
|
||||
|
||||
private ICallGateSubscriber<ChangedItemType, uint, object>? _tooltipSubscriber;
|
||||
private ICallGateSubscriber<ChangedItemType, uint, object>? _tooltipSubscriber;
|
||||
private ICallGateSubscriber<MouseButton, ChangedItemType, uint, object>? _clickSubscriber;
|
||||
private ICallGateSubscriber<string, int, object>? _redrawSubscriberName;
|
||||
private ICallGateSubscriber<GameObject, int, object>? _redrawSubscriberObject;
|
||||
private ICallGateSubscriber<string, int, object>? _redrawSubscriberName;
|
||||
private ICallGateSubscriber<GameObject, int, object>? _redrawSubscriberObject;
|
||||
|
||||
private readonly ICallGateSubscriber<object?> _initializedEvent;
|
||||
private readonly ICallGateSubscriber<object?> _disposedEvent;
|
||||
|
|
@ -23,7 +24,7 @@ public class PenumbraAttach : IDisposable
|
|||
public PenumbraAttach(bool attach)
|
||||
{
|
||||
_initializedEvent = Dalamud.PluginInterface.GetIpcSubscriber<object?>("Penumbra.Initialized");
|
||||
_disposedEvent = Dalamud.PluginInterface.GetIpcSubscriber<object?>("Penumbra.Disposed");
|
||||
_disposedEvent = Dalamud.PluginInterface.GetIpcSubscriber<object?>("Penumbra.Disposed");
|
||||
_initializedEvent.Subscribe(Reattach);
|
||||
_disposedEvent.Subscribe(Unattach);
|
||||
Reattach(attach);
|
||||
|
|
@ -38,12 +39,13 @@ public class PenumbraAttach : IDisposable
|
|||
{
|
||||
Unattach();
|
||||
|
||||
var versionSubscriber = Dalamud.PluginInterface.GetIpcSubscriber<int>("Penumbra.ApiVersion");
|
||||
var version = versionSubscriber.InvokeFunc();
|
||||
if (version < RequiredPenumbraShareVersion)
|
||||
throw new Exception($"Invalid Version {version}, required Version {RequiredPenumbraShareVersion}.");
|
||||
var versionSubscriber = Dalamud.PluginInterface.GetIpcSubscriber<(int, int)>("Penumbra.ApiVersions");
|
||||
var (breaking, feature) = versionSubscriber.InvokeFunc();
|
||||
if (breaking != RequiredPenumbraBreakingVersion || feature < RequiredPenumbraFeatureVersion)
|
||||
throw new Exception(
|
||||
$"Invalid Version {breaking}.{feature:D4}, required major Version {RequiredPenumbraBreakingVersion} with feature greater or equal to {RequiredPenumbraFeatureVersion}.");
|
||||
|
||||
_redrawSubscriberName = Dalamud.PluginInterface.GetIpcSubscriber<string, int, object>("Penumbra.RedrawObjectByName");
|
||||
_redrawSubscriberName = Dalamud.PluginInterface.GetIpcSubscriber<string, int, object>("Penumbra.RedrawObjectByName");
|
||||
_redrawSubscriberObject = Dalamud.PluginInterface.GetIpcSubscriber<GameObject, int, object>("Penumbra.RedrawObject");
|
||||
|
||||
if (!attach)
|
||||
|
|
@ -66,8 +68,8 @@ public class PenumbraAttach : IDisposable
|
|||
{
|
||||
_tooltipSubscriber?.Unsubscribe(PenumbraTooltip);
|
||||
_clickSubscriber?.Unsubscribe(PenumbraRightClick);
|
||||
_tooltipSubscriber = null;
|
||||
_clickSubscriber = null;
|
||||
_tooltipSubscriber = null;
|
||||
_clickSubscriber = null;
|
||||
_redrawSubscriberName = null;
|
||||
if (_redrawSubscriberObject != null)
|
||||
{
|
||||
|
|
@ -94,9 +96,9 @@ public class PenumbraAttach : IDisposable
|
|||
if (button != MouseButton.Right || type != ChangedItemType.Item)
|
||||
return;
|
||||
|
||||
var gPose = Dalamud.Objects[Interface.GPoseObjectId] as Character;
|
||||
var player = Dalamud.Objects[0] as Character;
|
||||
var item = (Lumina.Excel.GeneratedSheets.Item)type.GetObject(id)!;
|
||||
var gPose = Dalamud.Objects[Interface.GPoseObjectId] as Character;
|
||||
var player = Dalamud.Objects[0] as Character;
|
||||
var item = (Lumina.Excel.GeneratedSheets.Item)type.GetObject(id)!;
|
||||
var writeItem = new Item(item, string.Empty);
|
||||
if (gPose != null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
<PlatformTarget>x64</PlatformTarget>
|
||||
<RootNamespace>Glamourer</RootNamespace>
|
||||
<AssemblyName>Glamourer</AssemblyName>
|
||||
<FileVersion>0.1.0.3</FileVersion>
|
||||
<AssemblyVersion>0.1.0.3</AssemblyVersion>
|
||||
<FileVersion>0.1.0.4</FileVersion>
|
||||
<AssemblyVersion>0.1.0.4</AssemblyVersion>
|
||||
<Company>SoftOtter</Company>
|
||||
<Product>Glamourer</Product>
|
||||
<Copyright>Copyright © 2020</Copyright>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
"Description": "Adds functionality to change and store appearance of players, customization and equip. Requires Penumbra to be installed and activated to work. Can also add preview options to the Changed Items tab for Penumbra.",
|
||||
"Tags": [ "Appearance", "Glamour", "Race", "Outfit", "Armor", "Clothes", "Skins", "Customization", "Design", "Character" ],
|
||||
"InternalName": "Glamourer",
|
||||
"AssemblyVersion": "0.1.0.3",
|
||||
"AssemblyVersion": "0.1.0.4",
|
||||
"RepoUrl": "https://github.com/Ottermandias/Glamourer",
|
||||
"ApplicableVersion": "any",
|
||||
"DalamudApiLevel": 6,
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
"Description": "Adds functionality to change and store appearance of players, customization and equip. Requires Penumbra to be installed and activated to work. Can also add preview options to the Changed Items tab for Penumbra.",
|
||||
"Tags": [ "Appearance", "Glamour", "Race", "Outfit", "Armor", "Clothes", "Skins", "Customization", "Design", "Character" ],
|
||||
"InternalName": "Glamourer",
|
||||
"AssemblyVersion": "0.1.0.3",
|
||||
"TestingAssemblyVersion": "0.1.0.3",
|
||||
"AssemblyVersion": "0.1.0.4",
|
||||
"TestingAssemblyVersion": "0.1.0.4",
|
||||
"RepoUrl": "https://github.com/Ottermandias/Glamourer",
|
||||
"ApplicableVersion": "any",
|
||||
"DalamudApiLevel": 6,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue