Actor resolving fixes for UI actors

Profiles should now properly apply to UI actors in Crystalline Conflict and other places
Added ability to control which parts of the UI profiles are applying to
This commit is contained in:
RisaDev
2024-04-11 23:33:41 +03:00
parent c663e3c22f
commit 99990c9208
7 changed files with 183 additions and 64 deletions

View File

@@ -99,6 +99,15 @@ public unsafe sealed class ArmatureManager : IDisposable
ApplyRootTranslation(armature, actor);
}
/// <summary>
/// Force profile rebind for all armatures
/// </summary>
public void RebindAllArmatures()
{
foreach (var kvPair in Armatures)
kvPair.Value.IsPendingProfileRebind = true;
}
/// <summary>
/// Deletes armatures which no longer have actor associated with them and creates armatures for new actors
/// </summary>
@@ -542,9 +551,7 @@ public unsafe sealed class ArmatureManager : IDisposable
{
foreach(var kvPair in Armatures)
{
var actorIdentifier = kvPair.Key;
if (actorIdentifier.Type == IdentifierType.Special)
actorIdentifier = actorIdentifier.GetTrueActorForSpecialType();
(var actorIdentifier, _) = _gameObjectService.GetTrueActorForSpecialTypeActor(kvPair.Key);
if(actorIdentifier.ToNameWithoutOwnerName() == characterName)
yield return kvPair.Value;