local auto_refill = true  -- set to false if you dont want get refilled your stack automatic

function refill(player, stck_name, index)
	local inv = player:get_inventory()
	for i,stack in ipairs(inv:get_list("main")) do
		if stack:get_name() == stck_name then
			inv:set_stack("main", index, stack)
			stack:clear()
			inv:set_stack("main", i, stack)
			minetest.log("action", "intweak-mod: refilled stack of"  .. player:get_player_name()  )
			return
		end
	end
end

if auto_refill == true then
	minetest.register_on_placenode(function(pos, newnode, placer, oldnode)
		if not placer then return end
		local index = placer:get_wield_index()
		local cnt = placer:get_wielded_item():get_count()-1
		if minetest.setting_getbool("creative_mode") then
			return true
		else
			if cnt == 0 then
				minetest.after(0.01, refill, placer, newnode.name, index)
			end
		end
	end)
end


local ttyp = {}
local tools = {}

minetest.register_on_punchnode(function(pos, node, puncher)
	if not puncher then return end
	if minetest.setting_getbool("creative_mode") then return end
	local pn = puncher:get_player_name()
	tools[pn] = puncher:get_wielded_item():get_name()
	if minetest.registered_items[tools[pn]] == nil then return end
	ttyp[pn] = minetest.registered_items[tools[pn]].type
	local left = puncher:get_wielded_item():get_wear() + 65535/65--)
	local tab = minetest.registered_tools[tools[pn]]
	if tab == nil then return end
	local left = tonumber(dump(tab["uses"]))
	if left == nil then return end
	left = puncher:get_wielded_item():get_wear() + 65535/left
	if ttyp[pn] == "tool" and left >= 65535 then
		minetest.sound_play("intweak_tool_break", {pos = puncher:getpos(), gain = 1, max_hear_distance = 5})
		if auto_refill == true then minetest.after(0.01, refill, puncher, tools[pn], puncher:get_wield_index()) end
	end
end)

minetest.register_on_dignode(function(pos, oldnode, digger)
		if not digger then return end
		if minetest.setting_getbool("creative_mode") then return end
		local pn = digger:get_player_name()
		local num = digger:get_wielded_item():get_wear()
		local index = digger:get_wield_index()
		if num == 0 and ttyp[pn] == "tool" and digger:get_wielded_item():get_name() == "" then
			minetest.sound_play("intweak_tool_break", {pos = digger:getpos(),gain = 1, max_hear_distance = 5})
			if auto_refill == true then minetest.after(0.01, refill, digger, tools[pn], index) end
		end
end)

print("[Mod] Inventory Tweak _loaded")