mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 22:17:22 +01:00
re-check semi-persistent transient resources validity instead of clearing on redraw
This commit is contained in:
parent
7265dab8a7
commit
99df88bb3b
3 changed files with 20 additions and 10 deletions
|
|
@ -342,21 +342,31 @@ public class CharacterDataFactory
|
||||||
|
|
||||||
foreach (var item in transientResourceManager.GetTransientResources(charaPointer))
|
foreach (var item in transientResourceManager.GetTransientResources(charaPointer))
|
||||||
{
|
{
|
||||||
Logger.Verbose("Found transient resource: " + item);
|
if (!previousData.FileReplacements[objectKind].Any(f => f.GamePaths.Any(p => p.ToLowerInvariant() == item.ToLowerInvariant())))
|
||||||
AddReplacement(item, objectKind, previousData, 1, true);
|
{
|
||||||
|
Logger.Verbose("Found transient resource: " + item);
|
||||||
|
AddReplacement(item, objectKind, previousData, 1, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var item in transientResourceManager.GetSemiTransientResources(objectKind))
|
foreach (var item in transientResourceManager.GetSemiTransientResources(objectKind))
|
||||||
{
|
{
|
||||||
Logger.Verbose("Found semi transient resource: " + item);
|
|
||||||
if (!previousData.FileReplacements.ContainsKey(objectKind))
|
if (!previousData.FileReplacements.ContainsKey(objectKind))
|
||||||
{
|
{
|
||||||
previousData.FileReplacements.Add(objectKind, new());
|
previousData.FileReplacements.Add(objectKind, new());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!previousData.FileReplacements[objectKind].Any(k => k.ResolvedPath == item.ResolvedPath))
|
if (!previousData.FileReplacements[objectKind].Any(k => k.ResolvedPath.ToLowerInvariant() == item.ResolvedPath.ToLowerInvariant()))
|
||||||
{
|
{
|
||||||
previousData.FileReplacements[objectKind].Add(item);
|
if (_ipcManager.PenumbraResolvePath(item.GamePaths.First()).ToLowerInvariant() == item.GamePaths.First().ToLowerInvariant())
|
||||||
|
{
|
||||||
|
transientResourceManager.RemoveTransientResource(charaPointer, item);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Verbose("Found semi transient resource: " + item);
|
||||||
|
previousData.FileReplacements[objectKind].Add(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -254,11 +254,11 @@ namespace MareSynchronos.Managers
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public string? PenumbraResolvePath(string path)
|
public string PenumbraResolvePath(string path)
|
||||||
{
|
{
|
||||||
if (!CheckPenumbraApi()) return null;
|
if (!CheckPenumbraApi()) return path;
|
||||||
var resolvedPath = _penumbraResolvePlayer!.InvokeFunc(path);
|
var resolvedPath = _penumbraResolvePlayer!.InvokeFunc(path);
|
||||||
return resolvedPath;
|
return resolvedPath ?? path;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string[] PenumbraReverseResolvePlayer(string path)
|
public string[] PenumbraReverseResolvePlayer(string path)
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ namespace MareSynchronos.Managers
|
||||||
if (address == item.Address)
|
if (address == item.Address)
|
||||||
{
|
{
|
||||||
Logger.Debug("Penumbra redraw Event for " + item.ObjectKind);
|
Logger.Debug("Penumbra redraw Event for " + item.ObjectKind);
|
||||||
_transientResourceManager.CleanSemiTransientResources(item.ObjectKind);
|
//_transientResourceManager.CleanSemiTransientResources(item.ObjectKind);
|
||||||
item.HasUnprocessedUpdate = true;
|
item.HasUnprocessedUpdate = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue