From c09b9e01c3cc723650d894bb921fd90cc7daf550 Mon Sep 17 00:00:00 2001 From: Helianthus <3904269375@qq.com> Date: Sat, 17 Oct 2026 00:12:12 +0800 Subject: [PATCH] Add queued background override to pixel appearances --- InscryptionAPI/PixelCard/PixelCardBehaviours.cs | 1 + InscryptionAPI/PixelCard/PixelCardManager.cs | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/InscryptionAPI/PixelCard/PixelCardBehaviours.cs b/InscryptionAPI/PixelCard/PixelCardBehaviours.cs index ad8a5856..f09b6c4e 100644 --- a/InscryptionAPI/PixelCard/PixelCardBehaviours.cs +++ b/InscryptionAPI/PixelCard/PixelCardBehaviours.cs @@ -11,6 +11,7 @@ public override void ApplyAppearance() { } public virtual Sprite PixelAppearance() { return null; } public virtual Sprite OverridePixelPortrait() { return null; } public virtual Sprite OverrideBackground() { return null; } + public virtual Sprite OverrideQueuedBackground() { return null; } public virtual void OnAppearanceApplied() { } } diff --git a/InscryptionAPI/PixelCard/PixelCardManager.cs b/InscryptionAPI/PixelCard/PixelCardManager.cs index dc40ce00..e209745c 100644 --- a/InscryptionAPI/PixelCard/PixelCardManager.cs +++ b/InscryptionAPI/PixelCard/PixelCardManager.cs @@ -91,8 +91,9 @@ private static void DecalPatches(PixelCardDisplayer __instance, PlayableCard pla private static void AddDecalToCard(in PixelCardDisplayer instance, PlayableCard playableCard) { - Transform cardElements = instance?.gameObject?.transform?.Find("CardElements"); - if (cardElements == null) + Transform cardElements = instance?.cardElements?.transform; + Transform queuedCardElements = instance?.queuedCardElements?.transform; + if (cardElements == null || queuedCardElements == null) return; List existingDecals = new(); @@ -139,6 +140,15 @@ private static void AddDecalToCard(in PixelCardDisplayer instance, PlayableCard Sprite overridePortrait = pixelBehav.OverridePixelPortrait(); if (overridePortrait != null) instance.SetPortrait(overridePortrait); + // override queued background + Sprite overrideQueuedBackground = pixelBehav.OverrideQueuedBackground(); + if (overrideQueuedBackground != null) + { + Transform queuedBackground = queuedCardElements.Find("QueuedBackground"); + SpriteRenderer component = queuedBackground?.GetComponent(); + if (component != null) + component.sprite = overrideQueuedBackground; + } } UnityObject.Destroy(behav); }