Add MCDO (#80)

* update api

* mcd online editor impl

* most of chara data hub impl

* some state of things

* some refactoring

* random bullshit go

* more nearby impl

* add uid to peformance msg

* cleanup/homogenization

* some split, update nuget packages

* migrate to latest packages where possible, remove lz4net, do some split, idk

* some polish and cleanup

* more cleanup, beautification, etc.

* fixes and cleanups

---------

Co-authored-by: Stanley Dimant <root.darkarchon@outlook.com>
This commit is contained in:
rootdarkarchon
2025-01-11 22:43:11 +01:00
committed by Loporrit
parent ad42b29a44
commit 30caedbf3a
44 changed files with 5128 additions and 486 deletions

View File

@@ -2,7 +2,6 @@
using Dalamud.Plugin;
using Dalamud.Plugin.Ipc;
using MareSynchronos.MareConfiguration;
using MareSynchronos.PlayerData.Export;
using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
@@ -16,7 +15,6 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
private readonly ILogger<IpcProvider> _logger;
private readonly IDalamudPluginInterface _pi;
private readonly MareConfigService _mareConfig;
private readonly MareCharaFileManager _mareCharaFileManager;
private readonly DalamudUtilService _dalamudUtil;
private ICallGateProvider<string, IGameObject, bool>? _loadFileProvider;
private ICallGateProvider<string, IGameObject, Task<bool>>? _loadFileAsyncProvider;
@@ -36,16 +34,17 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
public MareMediator Mediator { get; init; }
public IpcProvider(ILogger<IpcProvider> logger, IDalamudPluginInterface pi, MareConfigService mareConfig,
MareCharaFileManager mareCharaFileManager, DalamudUtilService dalamudUtil,
DalamudUtilService dalamudUtil,
MareMediator mareMediator)
{
_logger = logger;
_pi = pi;
_mareConfig = mareConfig;
_mareCharaFileManager = mareCharaFileManager;
_dalamudUtil = dalamudUtil;
Mediator = mareMediator;
// todo: fix ipc to use CharaDataManager
Mediator.Subscribe<GameObjectHandlerCreatedMessage>(this, (msg) =>
{
if (msg.OwnedObject) return;
@@ -136,7 +135,7 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
private async Task<bool> LoadMcdfAsync(string path, IGameObject target)
{
if (_mareCharaFileManager.CurrentlyWorking || !_dalamudUtil.IsInGpose)
//if (_mareCharaFileManager.CurrentlyWorking || !_dalamudUtil.IsInGpose)
return false;
await ApplyFileAsync(path, target).ConfigureAwait(false);
@@ -146,7 +145,7 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
private bool LoadMcdf(string path, IGameObject target)
{
if (_mareCharaFileManager.CurrentlyWorking || !_dalamudUtil.IsInGpose)
//if (_mareCharaFileManager.CurrentlyWorking || !_dalamudUtil.IsInGpose)
return false;
_ = Task.Run(async () => await ApplyFileAsync(path, target).ConfigureAwait(false)).ConfigureAwait(false);
@@ -156,6 +155,7 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
private async Task ApplyFileAsync(string path, IGameObject target)
{
/*
try
{
var expectedLength = _mareCharaFileManager.LoadMareCharaFile(path);
@@ -168,7 +168,7 @@ public class IpcProvider : IHostedService, IMediatorSubscriber
finally
{
_mareCharaFileManager.ClearMareCharaFile();
}
}*/
}
private List<nint> GetHandledAddresses()