add semi transient resource handling, wait max 3s for pets to change

This commit is contained in:
Stanley Dimant
2022-09-03 22:06:28 +02:00
parent ce6764cbf8
commit bd947d8f2a
7 changed files with 95 additions and 22 deletions

View File

@@ -237,14 +237,15 @@ public class CharacterDataFactory
previousData.FileReplacements[objectKind].Clear();
}
Stopwatch st = Stopwatch.StartNew();
var chara = _dalamudUtil.CreateGameObject(charaPointer)!;
while (!_dalamudUtil.IsObjectPresent(chara))
{
Logger.Verbose("Character is null but it shouldn't be, waiting");
Thread.Sleep(50);
}
_dalamudUtil.WaitWhileCharacterIsDrawing(charaPointer);
//_dalamudUtil.WaitWhileCharacterIsDrawing(charaPointer);
Stopwatch st = Stopwatch.StartNew();
previousData.ManipulationString = _ipcManager.PenumbraGetMetaManipulations();
@@ -339,6 +340,14 @@ public class CharacterDataFactory
AddReplacement(item, objectKind, previousData, 1);
}
foreach (var item in transientResourceManager.GetSemiTransientResources(objectKind))
{
Logger.Verbose("Found semi transient resource: " + item);
AddReplacement(item, objectKind, previousData, 1);
}
transientResourceManager.PersistTransientResources(charaPointer, objectKind);
st.Stop();
Logger.Verbose("Building " + objectKind + " Data took " + st.Elapsed);
return previousData;