From 8fc1f596d2bed72bfe8ee94a51711c2f24c3e693 Mon Sep 17 00:00:00 2001 From: Luke aka SwissalpS Date: Sat, 13 Apr 2024 19:18:52 +0200 Subject: [PATCH] Preserve colour on repair by crafting (#15) --- crafts.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/crafts.lua b/crafts.lua index 748b356..379ee8a 100644 --- a/crafts.lua +++ b/crafts.lua @@ -40,6 +40,14 @@ local function get_color_name(name) return name end +local function get_color_name_from_color(color) + for name, color_hex in pairs(dye_colors) do + if color == color_hex then + return name + end + end +end + -- This recipe is just a placeholder do local item = ItemStack("hangglider:hangglider") @@ -61,9 +69,15 @@ minetest.register_on_craft(function(crafted_item, _, old_craft_grid) local name = stack:get_name() if name == "hangglider:hangglider" then wear = stack:get_wear() + color = stack:get_meta():get("hangglider_color") + color_name = get_color_name_from_color(color) elseif minetest.get_item_group(name, "dye") ~= 0 then color = get_dye_color(name) color_name = get_color_name(name) + elseif "wool:white" == stack:get_name() + or "default:paper" == stack:get_name() + then + wear = 0 end end if wear and color and color_name then