mirror of
https://github.com/lisacvuk/minetest-toolranks.git
synced 2025-07-12 21:10:27 +02:00
Compare commits
8 Commits
v1.2
...
aac3cded36
Author | SHA1 | Date | |
---|---|---|---|
aac3cded36 | |||
8010feb5bf | |||
12af618f9b | |||
8b466b199f | |||
0d7bf5a5d6 | |||
1a9996b76c | |||
2ce4efa2cd | |||
95f0fba777 |
29
init.lua
29
init.lua
@ -63,11 +63,13 @@ end
|
||||
function toolranks.new_afteruse(itemstack, user, node, digparams)
|
||||
local itemmeta = itemstack:get_meta()
|
||||
local itemdef = itemstack:get_definition()
|
||||
local itemdesc = itemdef.original_description
|
||||
local itemdesc = itemdef.original_description or ""
|
||||
local dugnodes = tonumber(itemmeta:get_string("dug")) or 0
|
||||
local lastlevel = tonumber(itemmeta:get_string("lastlevel")) or 0
|
||||
local most_digs = mod_storage:get_int("most_digs") or 0
|
||||
local most_digs_user = mod_storage:get_string("most_digs_user") or 0
|
||||
local pname = user:get_player_name()
|
||||
if not pname then return itemstack end -- player nil check
|
||||
|
||||
if digparams.wear > 0 then -- Only count nodes that spend the tool
|
||||
dugnodes = dugnodes + 1
|
||||
@ -75,24 +77,24 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
|
||||
end
|
||||
|
||||
if dugnodes > most_digs then
|
||||
if most_digs_user ~= user:get_player_name() then -- Avoid spam.
|
||||
if most_digs_user ~= pname then -- Avoid spam.
|
||||
minetest.chat_send_all(S(
|
||||
"Most used tool is now a @1@2@3 owned by @4 with @5 uses.",
|
||||
toolranks.colors.green,
|
||||
itemdesc,
|
||||
toolranks.colors.white,
|
||||
user:get_player_name(),
|
||||
pname,
|
||||
dugnodes
|
||||
))
|
||||
end
|
||||
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", pname)
|
||||
end
|
||||
|
||||
if itemstack:get_wear() > 60135 then
|
||||
minetest.chat_send_player(user:get_player_name(), S("Your tool is about to break!"))
|
||||
minetest.sound_play("default_tool_breaks", {
|
||||
to_player = user:get_player_name(),
|
||||
to_player = pname,
|
||||
gain = 2.0,
|
||||
})
|
||||
end
|
||||
@ -107,10 +109,11 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
|
||||
)
|
||||
minetest.chat_send_player(user:get_player_name(), levelup_text)
|
||||
minetest.sound_play("toolranks_levelup", {
|
||||
to_player = user:get_player_name(),
|
||||
to_player = pname,
|
||||
gain = 2.0,
|
||||
})
|
||||
|
||||
-- Make tool better by modifying tool_capabilities (if defined)
|
||||
if itemdef.tool_capabilities then
|
||||
local speed_multiplier = 1 + (level * level_multiplier * (max_speed - 1))
|
||||
local use_multiplier = 1 + (level * level_multiplier * (max_use - 1))
|
||||
local caps = table.copy(itemdef.tool_capabilities)
|
||||
@ -126,10 +129,18 @@ function toolranks.new_afteruse(itemstack, user, node, digparams)
|
||||
end
|
||||
itemmeta:set_tool_capabilities(caps)
|
||||
end
|
||||
end
|
||||
|
||||
-- Old method for compatibility with tools without tool_capabilities defined
|
||||
local wear = digparams.wear
|
||||
if level > 0 and not itemdef.tool_capabilities then
|
||||
local use_multiplier = 1 + (level * level_multiplier * (max_use - 1))
|
||||
wear = wear / use_multiplier
|
||||
end
|
||||
|
||||
itemmeta:set_string("lastlevel", level)
|
||||
itemmeta:set_string("description", toolranks.create_description(itemdesc, dugnodes))
|
||||
itemstack:add_wear(digparams.wear)
|
||||
itemstack:add_wear(wear)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
@ -174,3 +185,5 @@ toolranks.add_tool("default:shovel_steel")
|
||||
toolranks.add_tool("default:shovel_bronze")
|
||||
toolranks.add_tool("default:shovel_mese")
|
||||
toolranks.add_tool("default:shovel_diamond")
|
||||
|
||||
minetest.log("action", "[toolranks] loaded.")
|
||||
|
Reference in New Issue
Block a user