diff --git a/README.md b/README.md index f603463..7e658d4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # minetest-toolranks Minetest tool ranks mod -Tool gains levels for digging nodes. Higher level tools take longer to +Tool gains levels for digging nodes. Higher level tools take longer to wear out. + +## Are you a mod developer? +Does one of your mods add new tools? +If so, to support this mod, check if it is loaded with +```minetest.get_modpath("toolranks")``` +and then replace all after_use definitions with toolranks.new_afteruse. +Optionaly, you can also replace tools description with +```toolranks.create_description("Tool Name", 0, 1)``` +and then set original_description to your tools name. diff --git a/init.lua b/init.lua index a8f490b..cddb45d 100644 --- a/init.lua +++ b/init.lua @@ -1,11 +1,13 @@ -local colors = { +toolranks = {} + +toolranks.colors = { grey = minetest.get_color_escape_sequence("#9d9d9d"), green = minetest.get_color_escape_sequence("#1eff00"), gold = minetest.get_color_escape_sequence("#ffdf00"), white = minetest.get_color_escape_sequence("#ffffff") } -function get_tool_type(description) +function toolranks.get_tool_type(description) if string.find(description, "Pickaxe") then return "pickaxe" elseif string.find(description, "Axe") then @@ -19,18 +21,18 @@ function get_tool_type(description) end end -function create_description(name, uses, level) +function toolranks.create_description(name, uses, level) local description = name - local tooltype = get_tool_type(description) + local tooltype = toolranks.get_tool_type(description) - local newdesc = colors.green .. description .. "\n" .. - colors.gold .. "Level " .. level .. " " .. tooltype .. "\n" .. - colors.grey .. "Nodes dug: " .. uses + local newdesc = toolranks.colors.green .. description .. "\n" .. + toolranks.colors.gold .. "Level " .. level .. " " .. tooltype .. "\n" .. + toolranks.colors.grey .. "Nodes dug: " .. uses return newdesc end -function get_level(uses) +function toolranks.get_level(uses) if uses <= 100 then return 1 elseif uses < 200 then @@ -46,7 +48,7 @@ function get_level(uses) end end -function new_afteruse(itemstack, user, node, digparams) +function toolranks.new_afteruse(itemstack, user, node, digparams) local itemmeta = itemstack:get_meta() -- Metadata local itemdef = itemstack:get_definition() -- Item Definition local itemdesc = itemdef.original_description -- Original Description @@ -56,16 +58,16 @@ function new_afteruse(itemstack, user, node, digparams) dugnodes = dugnodes + 1 - level = get_level(dugnodes) + level = toolranks.get_level(dugnodes) if lastlevel < level then - local levelup_text = "Your " .. colors.green .. - itemdesc .. colors.white .. + local levelup_text = "Your " .. toolranks.colors.green .. + itemdesc .. toolranks.colors.white .. " just leveled up!" minetest.chat_send_player(user:get_player_name(), levelup_text) end - local newdesc = create_description(itemdesc, dugnodes, level) + local newdesc = toolranks.create_description(itemdesc, dugnodes, level) itemmeta:set_string("lastlevel", level) itemmeta:set_string("dug", dugnodes) @@ -85,91 +87,91 @@ end minetest.override_item("default:pick_diamond", { original_description = "Diamond Pickaxe", - description = create_description("Diamond Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Diamond Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_diamond", { original_description = "Diamond Axe", - description = create_description("Diamond Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Diamond Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_diamond", { original_description = "Diamond Shovel", - description = create_description("Diamond Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Diamond Shovel", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:pick_wood", { original_description = "Wooden Pickaxe", - description = create_description("Wooden Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Wooden Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_wood", { original_description = "Wooden Axe", - description = create_description("Wooden Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Wooden Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_wood", { original_description = "Wooden Shovel", - description = create_description("Wooden Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Wooden Shovel", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:pick_steel", { original_description = "Steel Pickaxe", - description = create_description("Steel Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Steel Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_steel", { original_description = "Steel Axe", - description = create_description("Steel Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Steel Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_steel", { original_description = "Steel Shovel", - description = create_description("Steel Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Steel Shovel", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:pick_stone", { original_description = "Stone Pickaxe", - description = create_description("Stone Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Stone Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_stone", { original_description = "Stone Axe", - description = create_description("Stone Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Stone Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_stone", { original_description = "Stone Shovel", - description = create_description("Stone Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Stone Shovel", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:pick_bronze", { original_description = "Bronze Pickaxe", - description = create_description("Bronze Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Bronze Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_bronze", { original_description = "Bronze Axe", - description = create_description("Bronze Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Bronze Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_bronze", { original_description = "Bronze Shovel", - description = create_description("Bronze Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Bronze Shovel", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:pick_mese", { original_description = "Mese Pickaxe", - description = create_description("Mese Pickaxe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Mese Pickaxe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:axe_mese", { original_description = "Mese Axe", - description = create_description("Mese Axe", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Mese Axe", 0, 1), + after_use = toolranks.new_afteruse, }) minetest.override_item("default:shovel_mese", { original_description = "Mese Shovel", - description = create_description("Mese Shovel", 0, 1), - after_use = new_afteruse, + description = toolranks.create_description("Mese Shovel", 0, 1), + after_use = toolranks.new_afteruse, })