Template:ItemBox: Difference between revisionsGive feedback
Restore the icon mask and real masked wear on the lowGraphics path, keeping only texture off, to measure whether the masks affect scroll caching (with help from vergir-bot LLM) |
Make the name area a query container so the measured name size can be emitted in cqw (with help from vergir-bot LLM) |
||
| (8 intermediate revisions by one other user not shown) | |||
| Line 8: | Line 8: | ||
-->{{#vardefine:displayName|{{{overrideDisplayName|{{#var:displayName}}}}}}}<!-- | -->{{#vardefine:displayName|{{{overrideDisplayName|{{#var:displayName}}}}}}}<!-- | ||
Measured name size ( | Measured name size (cqw) and stable per-item texture variety. | ||
-->{{#vardefine:fontSize|{{#invoke:ItemBox|getFontSize|{{#var:displayName}}}}}}<!-- | -->{{#vardefine:fontSize|{{#invoke:ItemBox|getFontSize|{{#var:displayName}}}}}}<!-- | ||
-->{{#vardefine:variants|{{#invoke:ItemBox|variants|{{#var:itemName}}}}}}<!-- | -->{{#vardefine:variants|{{#invoke:ItemBox|variants|{{#var:itemName}}}}}}<!-- | ||
| Line 21: | Line 21: | ||
-->{{#vardefine:isImbue|{{#ifeq:{{#var:isImbue}}|true|itembox-imbue}}}}<!-- | -->{{#vardefine:isImbue|{{#ifeq:{{#var:isImbue}}|true|itembox-imbue}}}}<!-- | ||
lowGraphics=true is | lowGraphics=true is for callers that place dozens of cards on one page (the | ||
card navboxes). It swaps the paper texture from the normal-mode multiply, | |||
which blends two images and so is re-rasterised every scrolled frame, to a | |||
transparent-paper overlay that is a single cacheable image. On the profiled | |||
navbox this took the render thread's OpenGL work from ~230 ms/s to ~10 and | |||
roughly doubled the frame rate. The wear and icon masks are clips of a | |||
single image, not blends, so they cache once rasterised and stay at full | |||
detail. The overlay itself is defined in [[Template:ItemBox/styles.css]] and | |||
keyed off the same per-item texture-vN class, so a card keeps its paper | |||
across both modes. | |||
-->{{#vardefine:lowGraphics|{{#ifeq:{{{lowGraphics|}}}|true|itembox-lowgfx}}}}<!-- | |||
-->{{#vardefine: | |||
Links. | Links. | ||
| Line 50: | Line 38: | ||
-->{{#vardefine:linkClick|{{{overrideLinkClick|{{#var:itemName}}{{If lang}}}}}}}<!-- | -->{{#vardefine:linkClick|{{{overrideLinkClick|{{#var:itemName}}{{If lang}}}}}}}<!-- | ||
--><div class="itembox {{#var:showTierTag}} {{#var:tier}} {{#var:slot}} {{#var:isActive}} {{#var:isImbue}} {{#var:variants}} {{#var:lowGraphics | --><div class="itembox {{#var:showTierTag}} {{#var:tier}} {{#var:slot}} {{#var:isActive}} {{#var:isImbue}} {{#var:variants}} {{#var:lowGraphics}}" style="font-size:{{#expr: 10 * {{#if:{{{size|}}}|{{{size}}}|1}} }}px;"> | ||
<div class="itembox-background"> | <div class="itembox-background"> | ||
<div class="itembox-card"> | <div class="itembox-card"> | ||
| Line 62: | Line 50: | ||
<div class="itembox-imbue-tag">{{#invoke:Lang|get_string|item_info_imbue}}</div> | <div class="itembox-imbue-tag">{{#invoke:Lang|get_string|item_info_imbue}}</div> | ||
</div> | </div> | ||
<div class="itembox-name-area"> | <!-- container-type is inline because TemplateStyles strips it; the name's cqw size measures against this box. --> | ||
<p class="itembox-name" style="font-size:{{#var:fontSize}} | <div class="itembox-name-area" style="container-type: inline-size;"> | ||
<p class="itembox-name" style="font-size:{{#var:fontSize}};text-wrap:balance;">{{#var:displayName}}</p> | |||
</div> | </div> | ||
<div class="itembox-wear"></div> | <div class="itembox-wear"></div> | ||
Latest revision as of 19:14, 1 August 2026
Usage
[edit source]{{ItemBox}} renders a Deadlock shop item as a card: icon, tier art, and the item name auto-sized to fit. Pass an item name and everything else — tier, slot, tags, image — is pulled from Module:ItemData.
{{ItemBox|Extended Magazine}}
Parameters
[edit source]| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| itemName | itemName 1 | Item name; keys into Module:ItemData. Positional.
| String | required |
| size | size | Scales the whole card. 1 = default (80px wide), 1.5 = 150%, 0.75 = 75%.
| Number | optional |
| showTierTag | showTierTag | Set to true to show the tier corner badge.
| Boolean | optional |
| lowGraphics | lowGraphics | Set to true for pages that place many cards at once (the card navboxes). Swaps the paper texture to a cacheable overlay so scrolling stays smooth; the look is nearly identical.
| Boolean | optional |
| overrideDisplayName | overrideDisplayName | Replaces the name shown on the card.
| String | optional |
| overrideTier | overrideTier | Replaces the card's tier.
| Number | optional |
| overrideSlot | overrideSlot | Replaces the card's background (type).
| String | optional |
| overrideIsActive | overrideIsActive | Forces the ACTIVE tag on or off.
| Boolean | optional |
| overrideIsImbue | overrideIsImbue | Forces the IMBUE tag on or off.
| Boolean | optional |
| overrideLinkTooltip | overrideLinkTooltip | Page the hover tooltip reads its info from.
| String | optional |
| overrideLinkImage | overrideLinkImage | Page/file the icon image comes from.
| String | optional |
| overrideLinkClick | overrideLinkClick | Page the card links to when clicked.
| String | optional |
Examples
[edit source]Basic
[edit source]{{ItemBox|Close Quarters}}
{{ItemBox|Spirit Shredder Bullets}}
{{ItemBox|Silencer}}
{{ItemBox|Extra Health}}
{{ItemBox|Echo Shard}}
{{ItemBox|Celestial Blessing}}
Tier tag
[edit source]{{ItemBox|Extended Magazine|showTierTag = true}}
{{ItemBox|Berserker|showTierTag = true}}
{{ItemBox|Echo Shard|showTierTag = true}}
{{ItemBox|Celestial Blessing|showTierTag = true}}
Size
[edit source]{{ItemBox|Extended Magazine|size = 0.75}}
{{ItemBox|Extended Magazine}}
{{ItemBox|Extended Magazine|size = 1.5}}
Low graphics
[edit source]For pages that place many cards at once. The paper texture becomes a single cacheable overlay so scrolling stays smooth; the look is nearly identical.
{{ItemBox|Extra Health}}
{{ItemBox|Kinetic Dash}}
{{ItemBox|Metal Skin}}
{{ItemBox|Echo Shard}}
{{ItemBox|Extra Health|lowGraphics = true}}
{{ItemBox|Kinetic Dash|lowGraphics = true}}
{{ItemBox|Metal Skin|lowGraphics = true}}
{{ItemBox|Echo Shard|lowGraphics = true}}
Normal
Low graphics
Overrides
[edit source]{{ItemBox|High-Velocity Rounds|overrideDisplayName = Test Name}}
{{ItemBox|Intensifying Magazine|overrideTier = 4}}
{{ItemBox|Weakening Headshot|overrideSlot = Spirit}}
{{ItemBox|Recharging Rush|overrideIsActive = true}}
{{ItemBox|Alchemical Fire|overrideIsImbue = true}}
{{ItemBox|Bullet Lifesteal|overrideLinkClick = Heroes}}
References
[edit source]- Item data — Data:ItemData.json, read by Module:ItemData
- Name sizing and texture variety — Module:ItemBox
- Card styling — Template:ItemBox/styles.css