forked from Mineclonia/Mineclonia
Render preview banners with transparent patterns correctly
Without this fix, the banner pattern preview generation does not mask the banner pattern, so the alpha channel of the banner pattern is not taken into account. This lead to preview banners with color gradients showing up as a solid color banner and opaque pixel artifacts for the bottom triangle pattern.
This commit is contained in:
parent
07a59ef120
commit
f410de485a
|
@ -387,13 +387,15 @@ for colorid, colortab in pairs(mcl_banners.colors) do
|
||||||
-- redraw the pattern textures as low-resolution pixel
|
-- redraw the pattern textures as low-resolution pixel
|
||||||
-- art and use that instead.
|
-- art and use that instead.
|
||||||
|
|
||||||
local layer = "(([combine:20x40:-2,-2="..pattern.."^[resize:16x24^[colorize:"..color..":"..layer_ratio.."))"
|
local layer = "([combine:20x40:-2,-2=" .. pattern .. "^[resize:16x24^[colorize:" .. color .. ":" .. layer_ratio .. ")"
|
||||||
|
local mask = "([combine:20x40:-2,-2=" .. pattern .. "^[resize:16x24" .. ")"
|
||||||
|
|
||||||
function escape(text)
|
function escape(text)
|
||||||
return text:gsub("%^", "\\%^"):gsub(":", "\\:") -- :gsub("%(", "\\%("):gsub("%)", "\\%)")
|
return text:gsub("%^", "\\%^"):gsub(":", "\\:") -- :gsub("%(", "\\%("):gsub("%)", "\\%)")
|
||||||
end
|
end
|
||||||
|
|
||||||
finished_banner = "[combine:32x32:0,0=" .. escape(base) .. ":8,4=" .. escape(layer)
|
local layer_masked = layer .. "^[mask:" .. escape(mask)
|
||||||
|
finished_banner = "[combine:32x32:0,0=" .. escape(base) .. ":8,4=" .. escape(layer_masked)
|
||||||
end
|
end
|
||||||
|
|
||||||
inv = finished_banner
|
inv = finished_banner
|
||||||
|
|
Loading…
Reference in New Issue