From bad8a1f2c7519ef63350c26b539dfc6aeb9ab94c Mon Sep 17 00:00:00 2001 From: mat Date: Thu, 17 Feb 2022 19:12:57 +0000 Subject: add items --- package.json | 3 +- src/lib/GlobalTooltip.svelte | 53 +++++++++++------- src/lib/Header.svelte | 2 +- src/lib/Tooltip.svelte | 3 +- src/lib/minecraft/Item.svelte | 85 ++++++++++++++++++++++------- src/lib/sections/Infobox.svelte | 2 +- src/lib/sections/Skills.svelte | 10 ++++ src/lib/utils.ts | 5 +- src/routes/__layout.svelte | 3 +- src/routes/player/[player]/[profile].svelte | 16 +++++- yarn.lock | 5 ++ 11 files changed, 138 insertions(+), 49 deletions(-) diff --git a/package.json b/package.json index da232c1..3b9bcfd 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "type": "module", "dependencies": { "@lukeed/uuid": "^2.0.0", - "cookie": "^0.4.1" + "cookie": "^0.4.1", + "skyblock-assets": "^1.1.12" }, "packageManager": "yarn@3.1.1" } diff --git a/src/lib/GlobalTooltip.svelte b/src/lib/GlobalTooltip.svelte index 61e5514..2f7b738 100644 --- a/src/lib/GlobalTooltip.svelte +++ b/src/lib/GlobalTooltip.svelte @@ -5,7 +5,8 @@ // this script handles the item hover lore tooltip onMount(() => { - const itemEls = document.getElementsByClassName('item') + // TODO: have something that automatically registers the event listener when we create a new MinecraftTooltip + const itemEls = document.getElementsByClassName('minecraft-tooltip') let tooltipLocked = false function moveTooltipToMouse(e) { const mouseX = e.pageX @@ -38,23 +39,19 @@ } }) - for (const itemEl of itemEls) { - if (!(itemEl instanceof HTMLElement)) continue + for (const itemEl of itemEls as unknown as HTMLElement[]) { + // if (!(itemEl instanceof HTMLElement)) continue // if the item doesn't have lore or a name, that must mean it's air - if (!itemEl.dataset.loreHtml && !itemEl.dataset.nameHtml) continue + // if (!itemEl.dataset.loreHtml && !itemEl.dataset.nameHtml) continue itemEl.addEventListener('mouseover', e => { if (!tooltipLocked) { moveTooltipToMouse(e) - const loreHtml = itemEl.dataset.loreHtml - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') - const nameHtml = itemEl.dataset.nameHtml - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') + // copy the lore and name from the tooltip-lore and + // tooltip-name elements inside the item el + const loreHtml = itemEl.getElementsByClassName('tooltip-lore')[0].innerHTML + const nameHtml = itemEl.getElementsByClassName('tooltip-name')[0].innerHTML tooltipEl.innerHTML = `

${nameHtml}

${loreHtml}

` } tooltipEl.style.display = 'block' @@ -76,14 +73,8 @@ tooltipEl.style.userSelect = null tooltipEl.style.pointerEvents = null } - const loreHtml = itemEl.dataset.loreHtml - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') - const nameHtml = itemEl.dataset.nameHtml - .replace(/</g, '<') - .replace(/>/g, '>') - .replace(/"/g, '"') + const loreHtml = itemEl.getElementsByClassName('tooltip-lore')[0].innerHTML + const nameHtml = itemEl.getElementsByClassName('tooltip-name')[0].innerHTML tooltipEl.innerHTML = `

${nameHtml}

${loreHtml}

` }) document.addEventListener('mousedown', e => { @@ -99,3 +90,25 @@