A bit of work on new IPC
This commit is contained in:
@@ -7,6 +7,7 @@ using CustomizePlus.Game.Services;
|
||||
using CustomizePlus.Configuration.Data;
|
||||
using CustomizePlus.UI.Windows.MainWindow.Tabs.Templates;
|
||||
using CustomizePlus.Core.Helpers;
|
||||
using CustomizePlus.Api;
|
||||
|
||||
namespace CustomizePlus.UI.Windows.Controls;
|
||||
|
||||
@@ -17,6 +18,7 @@ public class PluginStateBlock
|
||||
private readonly GameStateService _gameStateService;
|
||||
private readonly FantasiaPlusDetectService _fantasiaPlusDetectService;
|
||||
private readonly HookingService _hookingService;
|
||||
private readonly CustomizePlusIpc _ipcService;
|
||||
|
||||
private static Vector4 normalColor = new Vector4(1, 1, 1, 1);
|
||||
private static Vector4 warnColor = new Vector4(1, 0.5f, 0, 1);
|
||||
@@ -27,13 +29,15 @@ public class PluginStateBlock
|
||||
PluginConfiguration configuration,
|
||||
GameStateService gameStateService,
|
||||
FantasiaPlusDetectService fantasiaPlusDetectService,
|
||||
HookingService hookingService)
|
||||
HookingService hookingService,
|
||||
CustomizePlusIpc ipcService)
|
||||
{
|
||||
_boneEditorPanel = boneEditorPanel;
|
||||
_configuration = configuration;
|
||||
_gameStateService = gameStateService;
|
||||
_fantasiaPlusDetectService = fantasiaPlusDetectService;
|
||||
_hookingService = hookingService;
|
||||
_ipcService = ipcService;
|
||||
}
|
||||
|
||||
public void Draw(float yPos)
|
||||
@@ -76,6 +80,11 @@ public class PluginStateBlock
|
||||
message = $"Editor is active.{(_boneEditorPanel.HasChanges ? " You have unsaved changes, finish template bone editing to open save/revert dialog." : "")}";
|
||||
}
|
||||
}
|
||||
else if (_ipcService.IPCFailed) //this is low priority error
|
||||
{
|
||||
severity = PluginStateSeverity.Error;
|
||||
message = $"Detected failure in IPC. Integrations with other plugins will not function.";
|
||||
}
|
||||
|
||||
if (message != null)
|
||||
{
|
||||
|
||||
@@ -24,6 +24,7 @@ public class IPCTestTab //: IDisposable
|
||||
private readonly ActorManager _actorManager;
|
||||
|
||||
private readonly ICallGateSubscriber<(int, int)>? _getApiVersion;
|
||||
private readonly ICallGateSubscriber<bool>? _isValid;
|
||||
private readonly ICallGateSubscriber<string, Character?, object>? _setCharacterProfile;
|
||||
private readonly ICallGateSubscriber<Character?, string>? _getProfileFromCharacter;
|
||||
private readonly ICallGateSubscriber<Character?, object>? _revertCharacter;
|
||||
@@ -51,9 +52,11 @@ public class IPCTestTab //: IDisposable
|
||||
_gameObjectService = gameObjectService;
|
||||
_actorManager = actorManager;
|
||||
|
||||
_getApiVersion = pluginInterface.GetIpcSubscriber<(int, int)>("CustomizePlus.GetApiVersion");
|
||||
_getApiVersion = pluginInterface.GetIpcSubscriber<(int, int)>("CustomizePlus.General.GetApiVersion");
|
||||
_apiVersion = _getApiVersion.InvokeFunc();
|
||||
|
||||
_isValid = pluginInterface.GetIpcSubscriber<bool>("CustomizePlus.General.IsValid");
|
||||
|
||||
_setCharacterProfile = pluginInterface.GetIpcSubscriber<string, Character?, object>("CustomizePlus.SetProfileToCharacter");
|
||||
_getProfileFromCharacter = pluginInterface.GetIpcSubscriber<Character?, string>("CustomizePlus.GetProfileFromCharacter");
|
||||
_revertCharacter = pluginInterface.GetIpcSubscriber<Character?, object>("CustomizePlus.RevertCharacter");
|
||||
@@ -79,6 +82,9 @@ public class IPCTestTab //: IDisposable
|
||||
_targetCharacterName = _gameObjectService.GetCurrentPlayerName();
|
||||
|
||||
ImGui.Text($"Version: {_apiVersion.Item1}.{_apiVersion.Item2}");
|
||||
//
|
||||
//ImGui.Text($"IsValid: {_isValid?.InvokeFunc()}");
|
||||
|
||||
//ImGui.Text($"Last profile update: {_lastProfileUpdate}, Character: {_lastProfileUpdateName}");
|
||||
ImGui.Text($"Memory: {(string.IsNullOrWhiteSpace(_rememberedProfileJson) ? "empty" : "has data")}");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user