From abbc562d45ce34cbeebd52ea8664cc8b213c4665 Mon Sep 17 00:00:00 2001 From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com> Date: Mon, 19 Jan 2026 14:21:38 +0100 Subject: [PATCH] Fixed ghosts for atlases --- .../backend/assets/TranslatedAssetLibrary.hx | 2 ++ source/funkin/editors/character/CharacterGhost.hx | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/source/funkin/backend/assets/TranslatedAssetLibrary.hx b/source/funkin/backend/assets/TranslatedAssetLibrary.hx index a90da269..d437ec79 100644 --- a/source/funkin/backend/assets/TranslatedAssetLibrary.hx +++ b/source/funkin/backend/assets/TranslatedAssetLibrary.hx @@ -108,6 +108,8 @@ class TranslatedAssetLibrary extends AssetLibrary implements IModsAssetLibrary { return null; } + // TODO: list support for TranslatedAssetLibrary (idk how it works) + #if MOD_SUPPORT public var _parsedAsset:String = null; // Theres no need to actually make this work - Nex diff --git a/source/funkin/editors/character/CharacterGhost.hx b/source/funkin/editors/character/CharacterGhost.hx index d603f7ee..ac026469 100644 --- a/source/funkin/editors/character/CharacterGhost.hx +++ b/source/funkin/editors/character/CharacterGhost.hx @@ -20,12 +20,15 @@ class CharacterGhost extends Character { var wasInvalidFrame:Bool = !colorTransform.__isDefault(false); colorTransform.__identity(); + var animName = animation.curAnim?.name ?? null; + var animFrame = animation.curAnim?.curFrame ?? 0; + var animFrameTimer = animation.curAnim?._frameTimer ?? 0; + for (anim in ghosts) @:privateAccess { alpha = 0.4; color = 0xFFAEAEAE; var flxanim:FlxAnimation = animation._animations.get(anim); - var frameIndex:Int = flxanim.frames.getDefault([0])[flxanim.frames.length - 1]; - frame = frames.frames[frameIndex]; + animation.play(anim, true, false, flxanim.frames.length - 1); setAnimOffset(anim); super.draw(); @@ -40,8 +43,12 @@ class CharacterGhost extends Character { frameOffset.set(0, 0); offset.set(globalOffset.x * (isPlayer != playerOffsets ? 1 : -1), -globalOffset.y); colorTransform.color = 0xFFEF0202; - } else - setAnimOffset(animation.name); + } else { + animation.play(animName, true, false, animFrame); + setAnimOffset(animName); + if (animation.curAnim != null) + animation.curAnim._frameTimer = animFrameTimer; + } super.draw(); }