Restrict banner layers to 3 if has a gradient
This commit is contained in:
parent
c6111039ab
commit
dca095171c
|
@ -193,7 +193,8 @@ minetest.register_node("mcl_banners:standing_banner", {
|
|||
_doc_items_entry_name = "Banner",
|
||||
_doc_items_image = "mcl_banners_item_base.png^mcl_banners_item_overlay.png",
|
||||
_doc_items_longdesc = "Banners are tall colorful decorative blocks. They can be placed on the floor and at walls. Banners can be emblazoned with a variety of patterns using a lot of dye in crafting.",
|
||||
_doc_items_usagehelp = "Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 6 layers on a banner that way. You can copy the pattern of a banner by placing two banners of the same color in the crafting grid—one needs to be emblazoned, the other one must be clean. Finally, you can use a banner on a cauldron with water to wash off its top-most layer.",
|
||||
_doc_items_usagehelp = [[Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 6 layers on a banner that way. If the banner includes a gradient, only 3 layers are possible.
|
||||
You can copy the pattern of a banner by placing two banners of the same color in the crafting grid—one needs to be emblazoned, the other one must be clean. Finally, you can use a banner on a cauldron with water to wash off its top-most layer.]],
|
||||
walkable = false,
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
-- Maximum number of layers which can be put on a banner by crafting.
|
||||
local max_layers_crafting = 6
|
||||
|
||||
-- Maximum number of layers when banner includes a gradient (workaround, see below).
|
||||
local max_layers_gradient = 3
|
||||
|
||||
-- Max. number lines in the descriptions for the banner layers.
|
||||
-- This is done to avoid huge tooltips.
|
||||
local max_layer_lines = 6
|
||||
|
@ -386,6 +389,16 @@ local banner_pattern_craft = function(itemstack, player, old_craft_grid, craft_i
|
|||
if #layers >= max_layers_crafting then
|
||||
return ItemStack("")
|
||||
end
|
||||
-- Lower layer limit when banner includes any gradient.
|
||||
-- Workaround to circumvent bug #340 (gradients are likely to cause transparent pixels).
|
||||
-- FIXME: Remove this restriction when bug #340 is fixed.
|
||||
if #layers >= max_layers_gradient then
|
||||
for l=1, #layers do
|
||||
if layers[l].pattern == "gradient" or layers[l].pattern == "gradient_up" then
|
||||
return ItemStack("")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local matching_pattern
|
||||
local max_i = player:get_inventory():get_size("craft")
|
||||
|
|
Loading…
Reference in New Issue
Block a user