blob: d2ac19da30fb65b7dc73f2edcbe2289657ac36c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
<script lang="ts">
import { cleanId, formattingCodeToHtml, TIER_COLORS } from '$lib/utils'
import MinecraftTooltip from './MinecraftTooltip.svelte'
import type { MatcherFile } from 'skyblock-assets'
import ItemIcon from './ItemIcon.svelte'
export let item: any | null
export let isslot = true
export let pack: MatcherFile | undefined = undefined
export let headSize: number | undefined = undefined
let itemLoreHtml: string | null
let itemNameHtml: string | null
let extraLore: string[] = []
if (!item?.display?.lore && item?.tier) {
// ☠ &cRequires &5Enderman Slayer 7
if (item.requirements.slayer)
extraLore.push(
`§4☠ §cRequires §5${cleanId(item.requirements.slayer.boss)} Slayer ${
item.requirements.slayer.level
}`
)
extraLore.push(`§l§${TIER_COLORS[item.tier] ?? 'c'}${item.tier.replace(/_/g, ' ')}`)
}
if (item?.id) {
extraLore.push(`\n§8ID: ${item.id}`)
}
$: itemLoreHtml = item
? (item.display?.lore ?? [])
.concat(extraLore)
.map(l => formattingCodeToHtml(l))
.join('<br>')
: null
$: {
let itemDisplayName = item?.display?.name
if (itemDisplayName) {
if (!itemDisplayName.includes('§') && item.tier)
itemDisplayName = `§${TIER_COLORS[item.tier] ?? 'c'}${itemDisplayName}`
}
itemNameHtml = itemDisplayName ? formattingCodeToHtml(itemDisplayName) : null
}
</script>
{#if item}
<MinecraftTooltip>
<span slot="name">{@html itemNameHtml}</span>
<span slot="lore">{@html itemLoreHtml}</span>
<ItemIcon {item} {isslot} {pack} {headSize} />
</MinecraftTooltip>
{:else}
<!-- don't do all that if the item doesn't actually exist -->
<ItemIcon {isslot} {item} />
{/if}
|