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_entry_name = "Banner",
|
||||||
_doc_items_image = "mcl_banners_item_base.png^mcl_banners_item_overlay.png",
|
_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_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,
|
walkable = false,
|
||||||
is_ground_content = false,
|
is_ground_content = false,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
-- Maximum number of layers which can be put on a banner by crafting.
|
-- Maximum number of layers which can be put on a banner by crafting.
|
||||||
local max_layers_crafting = 6
|
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.
|
-- Max. number lines in the descriptions for the banner layers.
|
||||||
-- This is done to avoid huge tooltips.
|
-- This is done to avoid huge tooltips.
|
||||||
local max_layer_lines = 6
|
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
|
if #layers >= max_layers_crafting then
|
||||||
return ItemStack("")
|
return ItemStack("")
|
||||||
end
|
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 matching_pattern
|
||||||
local max_i = player:get_inventory():get_size("craft")
|
local max_i = player:get_inventory():get_size("craft")
|
||||||
|
|
Loading…
Reference in New Issue