From 452f9e69267850bf7c576022ea244ca800b945b0 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Wed, 22 Jan 2025 07:49:12 -0800 Subject: [PATCH] thread_split: support emoji display --- src/client/graphics/layers/NameLayer.ts | 21 +++++++++++++++++++++ src/core/GameView.ts | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/client/graphics/layers/NameLayer.ts b/src/client/graphics/layers/NameLayer.ts index 997569a0a..4fb1ffc62 100644 --- a/src/client/graphics/layers/NameLayer.ts +++ b/src/client/graphics/layers/NameLayer.ts @@ -255,6 +255,27 @@ export class NameLayer implements Layer { existingTarget.remove() } + const existingEmoji = iconsDiv.querySelector('[data-icon="emoji"]') + const emojis = render.player.outgoingEmojis().filter(emoji => + emoji.recipientID == AllPlayers || emoji.recipientID == myPlayer?.smallID() + ); + + if (emojis.length > 0) { + if (!existingEmoji) { + const emojiDiv = document.createElement('div') + emojiDiv.setAttribute('data-icon', 'emoji') + emojiDiv.style.fontSize = `${iconSize}px` + emojiDiv.style.position = 'absolute' + emojiDiv.style.top = `-${iconSize}px` + emojiDiv.style.width = '100%' + emojiDiv.style.textAlign = 'center' + emojiDiv.textContent = emojis[0].message + iconsDiv.appendChild(emojiDiv) + } + } else if (existingEmoji) { + existingEmoji.remove() + } + // Update icon sizes based on scale const icons = iconsDiv.getElementsByTagName('img') for (const icon of icons) { diff --git a/src/core/GameView.ts b/src/core/GameView.ts index f08954f3e..268adaf4e 100644 --- a/src/core/GameView.ts +++ b/src/core/GameView.ts @@ -182,7 +182,7 @@ export class PlayerView implements Player { return false } outgoingEmojis(): EmojiMessage[] { - return [] + return this.data.outgoingEmojis } canDonate(recipient: Player): boolean { return false