1
0
mirror of https://github.com/lisacvuk/minetest-toolranks.git synced 2025-07-01 23:50:36 +02:00

2 Commits

5 changed files with 194 additions and 101 deletions

View File

@ -1 +1,2 @@
default default
moreores?

270
init.lua
View File

@ -1,5 +1,4 @@
local mod_storage = minetest.get_mod_storage() local mod_storage = minetest.get_mod_storage()
local S = minetest.get_translator("toolranks")
toolranks = {} toolranks = {}
@ -11,23 +10,16 @@ toolranks.colors = {
} }
function toolranks.get_tool_type(description) function toolranks.get_tool_type(description)
if not description then if string.find(description, "Pickaxe") then
return "tool" return "pickaxe"
elseif string.find(description, "Axe") then
return "axe"
elseif string.find(description, "Shovel") then
return "shovel"
elseif string.find(description, "Hoe") then
return "hoe"
else else
local d = string.lower(description) return "tool"
if string.find(d, "pickaxe") then
return "pickaxe"
elseif string.find(d, "axe") then
return "axe"
elseif string.find(d, "shovel") then
return "shovel"
elseif string.find(d, "hoe") then
return "hoe"
elseif string.find(d, "sword") then
return "sword"
else
return "tool"
end
end end
end end
@ -35,30 +27,34 @@ function toolranks.create_description(name, uses, level)
local description = name local description = name
local tooltype = toolranks.get_tool_type(description) local tooltype = toolranks.get_tool_type(description)
local newdesc = S("@1@2\n@3Level @4 @5\n@6@Node dug: @7", local newdesc = toolranks.colors.green .. description .. "\n" ..
toolranks.colors.green, toolranks.colors.gold .. "Level " .. (level or 1) .. " " .. tooltype .. "\n" ..
description, toolranks.colors.grey .. "Nodes dug: " .. (uses or 0)
toolranks.colors.gold,
(level or 1),
S(tooltype),
toolranks.colors.grey,
(uses or 0))
return newdesc return newdesc
end end
function toolranks.get_level(uses) function toolranks.get_level(uses)
if uses <= 200 then if uses <= 250 then
return 1 return 1
elseif uses < 400 then elseif uses < 500 then
return 2 return 2
elseif uses < 1000 then elseif uses < 1000 then
return 3 return 3
elseif uses < 2000 then elseif uses < 2500 then
return 4 return 4
elseif uses < 3200 then elseif uses < 5000 then
return 5 return 5
elseif uses < 10000 then
return 6
elseif uses < 25000 then
return 7
elseif uses < 50000 then
return 8
elseif uses < 100000 then
return 9
else else
return 6 return 10
end end
end end
@ -81,18 +77,15 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
most_digs = dugnodes most_digs = dugnodes
if(most_digs_user ~= user:get_player_name()) then -- Avoid spam. if(most_digs_user ~= user:get_player_name()) then -- Avoid spam.
most_digs_user = user:get_player_name() most_digs_user = user:get_player_name()
minetest.chat_send_all(S("Most used tool is now a @1@2@3 owned by @4 with @5 uses.", minetest.chat_send_all("Most used tool is now a " .. toolranks.colors.green .. itemdesc
toolranks.colors.green, .. toolranks.colors.white .. " owned by " .. user:get_player_name()
itemdesc, .. " with " .. dugnodes .. " uses.")
toolranks.colors.white,
user:get_player_name(),
dugnodes))
end end
mod_storage:set_int("most_digs", dugnodes) mod_storage:set_int("most_digs", dugnodes)
mod_storage:set_string("most_digs_user", user:get_player_name()) mod_storage:set_string("most_digs_user", user:get_player_name())
end end
if(itemstack:get_wear() > 60135) then if(itemstack:get_wear() > 60135) then
minetest.chat_send_player(user:get_player_name(), S("Your tool is about to break!")) minetest.chat_send_player(user:get_player_name(), "Your tool is about to break!")
minetest.sound_play("default_tool_breaks", { minetest.sound_play("default_tool_breaks", {
to_player = user:get_player_name(), to_player = user:get_player_name(),
gain = 2.0, gain = 2.0,
@ -101,10 +94,9 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
local level = toolranks.get_level(dugnodes) local level = toolranks.get_level(dugnodes)
if lastlevel < level then if lastlevel < level then
local levelup_text = S("Your @1@2@3 just leveled up!", local levelup_text = "Your " .. toolranks.colors.green ..
toolranks.colors.green, itemdesc .. toolranks.colors.white ..
itemdesc, " just leveled up!"
toolranks.colors.white)
minetest.sound_play("toolranks_levelup", { minetest.sound_play("toolranks_levelup", {
to_player = user:get_player_name(), to_player = user:get_player_name(),
gain = 2.0, gain = 2.0,
@ -129,44 +121,168 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
return itemstack return itemstack
end end
-- Helper function minetest.override_item("default:pick_diamond", {
local function add_tool(name) original_description = "Diamond Pickaxe",
local desc = ItemStack(name):get_definition().description description = toolranks.create_description("Diamond Pickaxe", 0, 1),
minetest.override_item(name, { after_use = toolranks.new_afteruse})
original_description = desc,
description = toolranks.create_description(desc, 0, 1), minetest.override_item("default:axe_diamond", {
after_use = toolranks.new_afteruse original_description = "Diamond Axe",
}) description = toolranks.create_description("Diamond Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_diamond", {
original_description = "Diamond Shovel",
description = toolranks.create_description("Diamond Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:pick_wood", {
original_description = "Wooden Pickaxe",
description = toolranks.create_description("Wooden Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:axe_wood", {
original_description = "Wooden Axe",
description = toolranks.create_description("Wooden Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_wood", {
original_description = "Wooden Shovel",
description = toolranks.create_description("Wooden Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:pick_steel", {
original_description = "Steel Pickaxe",
description = toolranks.create_description("Steel Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:axe_steel", {
original_description = "Steel Axe",
description = toolranks.create_description("Steel Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_steel", {
original_description = "Steel Shovel",
description = toolranks.create_description("Steel Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:pick_stone", {
original_description = "Stone Pickaxe",
description = toolranks.create_description("Stone Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:axe_stone", {
original_description = "Stone Axe",
description = toolranks.create_description("Stone Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_stone", {
original_description = "Stone Shovel",
description = toolranks.create_description("Stone Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:pick_bronze", {
original_description = "Bronze Pickaxe",
description = toolranks.create_description("Bronze Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:axe_bronze", {
original_description = "Bronze Axe",
description = toolranks.create_description("Bronze Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_bronze", {
original_description = "Bronze Shovel",
description = toolranks.create_description("Bronze Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:pick_mese", {
original_description = "Mese Pickaxe",
description = toolranks.create_description("Mese Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:axe_mese", {
original_description = "Mese Axe",
description = toolranks.create_description("Mese Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:shovel_mese", {
original_description = "Mese Shovel",
description = toolranks.create_description("Mese Shovel", 0, 1),
after_use = toolranks.new_afteruse})
if minetest.get_modpath("moreores") then
minetest.override_item("moreores:pick_mithril", {
original_description = "Mithril Pickaxe",
description = toolranks.create_description("Mithril Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:axe_mithril", {
original_description = "Mithril Axe",
description = toolranks.create_description("Mithril Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:shovel_mithril", {
original_description = "Mithril Shovel",
description = toolranks.create_description("Mithril Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:sword_mithril", {
original_description = "Mithril Sword",
description = toolranks.create_description("Mithril Sword", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:pick_silver", {
original_description = "Silver Pickaxe",
description = toolranks.create_description("Silver Pickaxe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:axe_silver", {
original_description = "Silver Axe",
description = toolranks.create_description("Silver Axe", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:shovel_silver", {
original_description = "Silver Shovel",
description = toolranks.create_description("Silver Shovel", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("moreores:sword_silver", {
original_description = "Silver Sword",
description = toolranks.create_description("Silver Sword", 0, 1),
after_use = toolranks.new_afteruse})
end end
-- Sword -- add swords for snappy nodes
add_tool("default:sword_wood") minetest.override_item("default:sword_wood", {
add_tool("default:sword_stone") original_description = "Wooden Sword",
add_tool("default:sword_steel") description = toolranks.create_description("Wooden Sword", 0, 1),
add_tool("default:sword_bronze") after_use = toolranks.new_afteruse})
add_tool("default:sword_mese")
add_tool("default:sword_diamond")
-- Pickaxe minetest.override_item("default:sword_stone", {
add_tool("default:pick_wood") original_description = "Stone Sword",
add_tool("default:pick_stone") description = toolranks.create_description("Stone Sword", 0, 1),
add_tool("default:pick_steel") after_use = toolranks.new_afteruse})
add_tool("default:pick_bronze")
add_tool("default:pick_mese")
add_tool("default:pick_diamond")
-- Axe minetest.override_item("default:sword_steel", {
add_tool("default:axe_wood") original_description = "Steel Sword",
add_tool("default:axe_stone") description = toolranks.create_description("Steel Sword", 0, 1),
add_tool("default:axe_steel") after_use = toolranks.new_afteruse})
add_tool("default:axe_bronze")
add_tool("default:axe_mese")
add_tool("default:axe_diamond")
-- Shovel minetest.override_item("default:sword_bronze", {
add_tool("default:shovel_wood") original_description = "Bronze Sword",
add_tool("default:shovel_stone") description = toolranks.create_description("Bronze Sword", 0, 1),
add_tool("default:shovel_steel") after_use = toolranks.new_afteruse})
add_tool("default:shovel_bronze")
add_tool("default:shovel_mese") minetest.override_item("default:sword_mese", {
add_tool("default:shovel_diamond") original_description = "Mese Sword",
description = toolranks.create_description("Mese Sword", 0, 1),
after_use = toolranks.new_afteruse})
minetest.override_item("default:sword_diamond", {
original_description = "Diamond Sword",
description = toolranks.create_description("Diamond Sword", 0, 1),
after_use = toolranks.new_afteruse})
minetest.log("action", "[toolranks] loaded.")

View File

@ -1,11 +0,0 @@
# textdomain: toolranks
@1@2@n@3Level @4 @5@n@6Node dug: @7=@1@2@n@3Level @4 @5@n@6Node dug: @7
pickaxe=pickaxe
axe=axe
shovel=shovel
hoe=hoe
sword=sword
tool=tool
Most used tool is now a @1@2@3 owned by @4 with @5 uses.=Most used tool is now a @1@2@3 owned by @4 with @5 uses.
Your tool is about to break!=Your tool is about to break!
Your @1@2@3 just leveled up!=Your @1@2@3 just leveled up!

View File

@ -1,11 +0,0 @@
# textdomain: toolranks
@1@2@n@3Level @4 @5@n@6Node dug: @7=@1@2@n@3@5 niveau @4@n@6Blocks minés : @7
pickaxe=pioche
axe=hache
shovel=pelle
hoe=houe
sword=épée
tool=outil
Most used tool is now a @1@2@3 owned by @4 with @5 uses.=Loutil le plus utilisé est désormais @1@2@3 appartenant à @4 avec @5 utilisations.
Your tool is about to break!=Votre outil va se casser !
Your @1@2@3 just leveled up!=Votre @1@2@3 a gagné un niveau !

View File

@ -1,2 +0,0 @@
name = toolranks
depends = default