mirror of
https://git.minetest.land/Mineclonia/Mineclonia.git
synced 2024-11-30 17:03:03 +00:00
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
1 changed files with 4 additions and 2 deletions
|
@ -387,13 +387,15 @@ for colorid, colortab in pairs(mcl_banners.colors) do
|
|||
-- redraw the pattern textures as low-resolution pixel
|
||||
-- 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)
|
||||
return text:gsub("%^", "\\%^"):gsub(":", "\\:") -- :gsub("%(", "\\%("):gsub("%)", "\\%)")
|
||||
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
|
||||
|
||||
inv = finished_banner
|
||||
|
|
Loading…
Reference in a new issue