From bb0080617a1d5db1f43d0f93da491b57b43ecb7f Mon Sep 17 00:00:00 2001 From: Araca Date: Tue, 5 Mar 2024 07:27:29 +0100 Subject: [PATCH] Add durability for bow & fishing rod --- mods/HELP/mcl_tt/snippets_mcl.lua | 11 ++++++++++- mods/ITEMS/mcl_enchanting/enchantments.lua | 1 + mods/ITEMS/mcl_fishing/init.lua | 3 ++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/mods/HELP/mcl_tt/snippets_mcl.lua b/mods/HELP/mcl_tt/snippets_mcl.lua index 825776f5f..2066670f3 100644 --- a/mods/HELP/mcl_tt/snippets_mcl.lua +++ b/mods/HELP/mcl_tt/snippets_mcl.lua @@ -25,6 +25,7 @@ tt.register_snippet(function(itemstring) end return s end) + tt.register_snippet(function(itemstring, _, itemstack) --local def = minetest.registered_items[itemstring] local s = "" @@ -34,13 +35,18 @@ tt.register_snippet(function(itemstring, _, itemstack) s = s .. S("Armor points: @1", pts) s = s .. "\n" end + local remaining_uses = use if itemstack then local unbreaking = mcl_enchanting.get_enchantment(itemstack, "unbreaking") if unbreaking > 0 then use = math.floor(use / (0.6 + 0.4 / (unbreaking + 1))) end + remaining_uses = math.round(use - (itemstack:get_wear() * use) / 65535) end if use > 0 then + if use ~= remaining_uses then + use = remaining_uses .. "/" .. use -- implicit conversion from number to string + end s = s .. S("Armor durability: @1", use) end if s == "" then @@ -109,6 +115,9 @@ end) tt.register_snippet(function(itemstring, _, itemstack) if itemstring:sub(1, 23) == "mcl_fishing:fishing_rod" or itemstring:sub(1, 12) == "mcl_bows:bow" then - return S("Durability: @1", S("@1 uses", mcl_util.calculate_durability(itemstack or ItemStack(itemstring)))) + local stack = itemstack or ItemStack(itemstring) + local use = mcl_util.calculate_durability(stack) + local remaining_use = math.round(use - (stack:get_wear() * use) / 65535) + return S("Durability: @1", S("@1 uses", remaining_use .."/".. use)) end end) diff --git a/mods/ITEMS/mcl_enchanting/enchantments.lua b/mods/ITEMS/mcl_enchanting/enchantments.lua index 591dfb679..379a18e07 100644 --- a/mods/ITEMS/mcl_enchanting/enchantments.lua +++ b/mods/ITEMS/mcl_enchanting/enchantments.lua @@ -485,6 +485,7 @@ mcl_experience.register_on_add_xp(function(player, xp) end stack:set_wear(math.floor(new_wear)) + tt.reload_itemstack_description(stack) -- update tooltip inv:set_stack(list, index, stack) end diff --git a/mods/ITEMS/mcl_fishing/init.lua b/mods/ITEMS/mcl_fishing/init.lua index 15c16fc79..ca9c3b2e3 100644 --- a/mods/ITEMS/mcl_fishing/init.lua +++ b/mods/ITEMS/mcl_fishing/init.lua @@ -1,6 +1,7 @@ --Fishing Rod, Bobber, and Flying Bobber mechanics and Bobber artwork by Rootyjr. local S = minetest.get_translator(minetest.get_current_modname()) +local FISHING_ROD_DURABILITY = 65 local bobber_ENTITY={ physical = false, @@ -38,7 +39,7 @@ local fish = function(itemstack, player, pointed_thing) local ent = nil local noent = true - local durability = 65 + local durability = FISHING_ROD_DURABILITY local unbreaking = mcl_enchanting.get_enchantment(itemstack, "unbreaking") if unbreaking > 0 then durability = durability * (unbreaking + 1)