Иконки и картинки
Иконки клиента, своя SVG-разметка прямо в коде, предметы, текстуры игры и картинки по ссылке.
Иконки клиента
local icons = render.icons()
render.svg(icons.KEYBOARD, x, y, 9, 9, render.theme().main)В наборе есть KEYBOARD, POTIONS, USERS, COOLDOWN, WIFI, SIGNAL, MUSIC, SETTINGS и другие — те же, что клиент рисует в своих элементах.
Своя иконка
Если нужной иконки нет, разметку можно положить прямо в скрипт. Растеризация кэшируется по содержимому, поэтому вызывать load_svg на каждом кадре не страшно — пересчёт случится только при изменении разметки.
local HEART = render.load_svg([[
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#FFFFFF">
<path d="M12 21s-7.5-4.7-9.4-9.1C1.1 8.3 3 5 6.3 5c2 0 3.4 1.1 4.2 2.3l1.5 2 1.5-2C14.3 6.1 15.7 5 17.7 5 21 5 22.9 8.3 21.4 11.9 19.5 16.3 12 21 12 21z"/>
</svg>
]])
render.svg(HEART, x, y, 7, 7, 0xFFFF5555)Цвет задаётся при отрисовке, а не в разметке: в самом SVG держите белую заливку, тогда одна иконка подойдёт под любую тему.
Предметы и текстуры
render.item(id, x, y, size)предмет по id вида minecraft:diamond, размер в пикселяхrender.texture(id, x, y, w, h, color)любая текстура игры по Identifierrender.entity_head(entity_id, x, y, size, radius, color)голова сущности из её скинаfor _, effect in ipairs(player.effects() or {}) do
local sprite = "minecraft:textures/mob_effect/" .. effect.id:match("[^:]+$") .. ".png"
render.texture(sprite, x, y, 10, 10, 0xFFFFFFFF)
endКартинки по ссылке
Загрузка идёт в фоне, поэтому первый кадр функция возвращает false — на этом месте рисуют заглушку.
if not render.image(url, x, y, 32, 32) then
render.rounded_rect(x, y, 32, 32, 6, render.with_alpha(theme.main, 25))
end