Skip to content

Commit 67807ac

Browse files
feat: custom follower spine partial
1 parent ba232db commit 67807ac

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

COTL_API/CustomSkins/CustomSkinManager.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public static partial class CustomSkinManager
3232
internal static readonly Dictionary<string, Sprite> TarotSprites = [];
3333
internal static readonly Dictionary<string, Sprite> TarotBackSprites = [];
3434
internal static readonly Dictionary<string, SkeletonDataAsset?> CustomPlayerSpines = [];
35+
internal static readonly Dictionary<string, SkeletonDataAsset?> CustomFollowerSpines = [];
3536
internal static string SelectedSpine = "";
3637
internal static int NumGenericAtlases;
3738

@@ -563,6 +564,35 @@ public static void ChangeSelectedPlayerSpine(string name)
563564
LogInfo($"Selected Spine: {SelectedSpine}");
564565
}
565566

567+
public static void AddFollowerSpine(string name, SkeletonDataAsset? skeletonDataAsset)
568+
{
569+
CustomFollowerSpines[name] = skeletonDataAsset;
570+
}
571+
572+
public static void ChangeSelectedFollowerSpine(string name, int followerid)
573+
{
574+
if (!CustomFollowerSpines.ContainsKey(name) || CustomFollowerSpines[name] == null) return;
575+
LogInfo($"Selected Follower Spine: {name} for follower {followerid}");
576+
577+
//get follower
578+
var follower = FollowerManager.FindFollowerByID(followerid);
579+
if (follower == null) return;
580+
581+
follower.Spine.skeletonDataAsset = CustomFollowerSpines[name];
582+
follower.Spine.Initialize(true);
583+
follower.Spine.AnimationState.Start -= new Spine.AnimationState.TrackEntryDelegate(follower.SetEmotionAnimation);
584+
follower.Spine.AnimationState.Start += new Spine.AnimationState.TrackEntryDelegate(follower.SetEmotionAnimation);
585+
// follower.SimpleAnimator.anim.AnimationState.Event -=
586+
// follower.SimpleAnimator.SpineEventHandler;
587+
// follower.SimpleAnimator.anim.AnimationState.Event +=
588+
// follower.SimpleAnimator.SpineEventHandler;
589+
590+
LogInfo($"Changed Follower {followerid} Spine to {name}");
591+
592+
593+
}
594+
595+
566596
public static void AddFollowerSkin(CustomFollowerSkin followerSkin)
567597
{
568598
AddFollowerSkin([followerSkin]);

0 commit comments

Comments
 (0)