From 25fe710c3b36b097502a5f3e0afb024312cbf7b9 Mon Sep 17 00:00:00 2001 From: Caleb Mabry <36182383+caleb-mabry@users.noreply.github.com> Date: Sun, 17 Jul 2022 00:56:15 -0400 Subject: Moved viewport out of client --- webAO/client/setEmote.ts | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 webAO/client/setEmote.ts (limited to 'webAO/client/setEmote.ts') diff --git a/webAO/client/setEmote.ts b/webAO/client/setEmote.ts new file mode 100644 index 0000000..1f0de07 --- /dev/null +++ b/webAO/client/setEmote.ts @@ -0,0 +1,51 @@ +import Client from "../client"; +import transparentPng from "../constants/transparentPng"; +import fileExists from "../utils/fileExists"; + +/** + * Sets all the img tags to the right sources + * @param {*} chatmsg + */ + +const setEmote = async ( + AO_HOST: string, + client: Client, + charactername: string, + emotename: string, + prefix: string, + pair: boolean, + side: string +) => { + const pairID = pair ? "pair" : "char"; + const characterFolder = `${AO_HOST}characters/`; + const acceptedPositions = ["def", "pro", "wit"]; + const position = acceptedPositions.includes(side) ? `${side}_` : ""; + const emoteSelector = document.getElementById( + `client_${position}${pairID}_img` + ) as HTMLImageElement; + const extensionsMap = [".gif", ".png", ".apng", ".webp"]; + + for (const extension of extensionsMap) { + // Hides all sprites before creating a new sprite + + if (client.viewport.lastChar !== client.viewport.chatmsg.name) { + emoteSelector.src = transparentPng; + } + let url; + if (extension === ".png") { + url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( + emotename + )}${extension}`; + } else { + url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( + prefix + )}${encodeURI(emotename)}${extension}`; + } + const exists = await fileExists(url); + if (exists) { + emoteSelector.src = url; + break; + } + } +}; +export default setEmote; -- cgit From 9ba98154f6d41956c4d89e0f04fa07e93963d184 Mon Sep 17 00:00:00 2001 From: stonedDiscord Date: Tue, 2 Aug 2022 19:11:05 +0200 Subject: check for static webps too --- webAO/client/setEmote.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'webAO/client/setEmote.ts') diff --git a/webAO/client/setEmote.ts b/webAO/client/setEmote.ts index 1f0de07..161eb51 100644 --- a/webAO/client/setEmote.ts +++ b/webAO/client/setEmote.ts @@ -23,7 +23,7 @@ const setEmote = async ( const emoteSelector = document.getElementById( `client_${position}${pairID}_img` ) as HTMLImageElement; - const extensionsMap = [".gif", ".png", ".apng", ".webp"]; + const extensionsMap = [".gif", ".png", ".apng", ".webp", ".webp.static"]; for (const extension of extensionsMap) { // Hides all sprites before creating a new sprite @@ -36,6 +36,10 @@ const setEmote = async ( url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( emotename )}${extension}`; + } else if (extension === ".webp.static") { + url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( + emotename + )}.webp`; } else { url = `${characterFolder}${encodeURI(charactername)}/${encodeURI( prefix -- cgit From 9272ecb2a5e154029e9eef08133386a4eedecb83 Mon Sep 17 00:00:00 2001 From: Caleb Date: Sun, 11 Sep 2022 16:24:43 -0400 Subject: Refactor with getter --- webAO/client/setEmote.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'webAO/client/setEmote.ts') diff --git a/webAO/client/setEmote.ts b/webAO/client/setEmote.ts index 161eb51..f4fbdbb 100644 --- a/webAO/client/setEmote.ts +++ b/webAO/client/setEmote.ts @@ -28,7 +28,7 @@ const setEmote = async ( for (const extension of extensionsMap) { // Hides all sprites before creating a new sprite - if (client.viewport.lastChar !== client.viewport.chatmsg.name) { + if (client.viewport.getLastCharacter() !== client.viewport.getChatmsg().name) { emoteSelector.src = transparentPng; } let url; -- cgit