Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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 toolranks.create_description(name, uses, level)
- local newdesc = toolranks.colors.green .. name .. "\n" ..
- toolranks.colors.gold .. "Level " .. (level or 1) .. "\n" ..
- toolranks.colors.grey .. "Nodes dug: " .. (uses or 0)
- return newdesc
- end
- function toolranks.get_level(uses)
- if uses < 100 then
- return 1
- elseif uses < 200 then
- return 2
- elseif uses < 400 then
- return 3
- elseif uses < 800 then
- return 4
- elseif uses < 1600 then
- return 5
- else
- return 6
- end
- end
- 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
- local dugnodes = tonumber(itemmeta:get_string("dug")) or 0 -- Number of nodes dug
- local lastlevel = tonumber(itemmeta:get_string("lastlevel")) or 1 -- Level the tool had on last dig
- -- Only count nodes that spend the tool
- if digparams.wear > 0 then
- dugnodes = dugnodes + 1
- end
- -- Warn player when tool is almost broken
- if itemstack:get_wear() > 60135 then
- minetest.chat_send_player(user:get_player_name(),
- toolranks.colors.gold.."Your tool is about to break!")
- minetest.sound_play("default_tool_breaks", {
- to_player = user:get_player_name(),
- gain = 2.0,
- })
- end
- level = toolranks.get_level(dugnodes)
- -- Alert player when tool has leveled up
- if lastlevel < level then
- minetest.chat_send_player(user:get_player_name(), "Your "
- .. toolranks.colors.green .. itemdesc
- .. toolranks.colors.white .. " just leveled up!")
- minetest.sound_play("toolranks_levelup", {
- to_player = user:get_player_name(),
- gain = 1.0,
- })
- end
- local newdesc = toolranks.create_description(itemdesc, dugnodes, level)
- -- Set new meta
- itemmeta:set_string("lastlevel", level)
- itemmeta:set_string("dug", dugnodes)
- itemmeta:set_string("description", newdesc)
- local wear = digparams.wear
- -- Set wear level
- if level > 1 then
- wear = digparams.wear / (1 + level / 4)
- end
- itemstack:add_wear(wear)
- return itemstack
- end
- minetest.override_item("default:pick_diamond", {
- original_description = "Diamond Pickaxe",
- description = toolranks.create_description("Diamond Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_diamond", {
- original_description = "Diamond Axe",
- description = toolranks.create_description("Diamond Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_diamond", {
- original_description = "Diamond Shovel",
- description = toolranks.create_description("Diamond Shovel"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:pick_wood", {
- original_description = "Wooden Pickaxe",
- description = toolranks.create_description("Wooden Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_wood", {
- original_description = "Wooden Axe",
- description = toolranks.create_description("Wooden Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_wood", {
- original_description = "Wooden Shovel",
- description = toolranks.create_description("Wooden Shovel"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:pick_steel", {
- original_description = "Steel Pickaxe",
- description = toolranks.create_description("Steel Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_steel", {
- original_description = "Steel Axe",
- description = toolranks.create_description("Steel Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_steel", {
- original_description = "Steel Shovel",
- description = toolranks.create_description("Steel Shovel"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:pick_stone", {
- original_description = "Stone Pickaxe",
- description = toolranks.create_description("Stone Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_stone", {
- original_description = "Stone Axe",
- description = toolranks.create_description("Stone Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_stone", {
- original_description = "Stone Shovel",
- description = toolranks.create_description("Stone Shovel"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:pick_bronze", {
- original_description = "Bronze Pickaxe",
- description = toolranks.create_description("Bronze Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_bronze", {
- original_description = "Bronze Axe",
- description = toolranks.create_description("Bronze Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_bronze", {
- original_description = "Bronze Shovel",
- description = toolranks.create_description("Bronze Shovel"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:pick_mese", {
- original_description = "Mese Pickaxe",
- description = toolranks.create_description("Mese Pickaxe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:axe_mese", {
- original_description = "Mese Axe",
- description = toolranks.create_description("Mese Axe"),
- after_use = toolranks.new_afteruse})
- minetest.override_item("default:shovel_mese", {
- original_description = "Mese Shovel",
- description = toolranks.create_description("Mese Shovel"),
- after_use = toolranks.new_afteruse})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement