дзеркало
				https://github.com/lisacvuk/minetest-toolranks.git
				synced 2025-10-31 15:45:29 +01:00 
			
		
		
		
	Порівняти коміти
	
		
			3 Коміти
		
	
	
		
			v1.2
			...
			1a9996b76c
		
	
	| Автор | SHA1 | Дата | |
|---|---|---|---|
| 1a9996b76c | |||
| 2ce4efa2cd | |||
|  | 95f0fba777 | 
							
								
								
									
										13
									
								
								.github/workflows/build.yml
									
									
									
									
										сторонній
									
									
								
							
							
						
						
									
										13
									
								
								.github/workflows/build.yml
									
									
									
									
										сторонній
									
									
								
							| @@ -1,13 +0,0 @@ | |||||||
| name: Build |  | ||||||
| on: [push, pull_request] |  | ||||||
| jobs: |  | ||||||
|   build: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|     - uses: actions/checkout@v1 |  | ||||||
|     - name: apt |  | ||||||
|       run: sudo apt-get install -y luarocks |  | ||||||
|     - name: luacheck install |  | ||||||
|       run: luarocks install --local luacheck |  | ||||||
|     - name: luacheck run |  | ||||||
|       run: $HOME/.luarocks/bin/luacheck ./ |  | ||||||
							
								
								
									
										18
									
								
								.luacheckrc
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								.luacheckrc
									
									
									
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| unused_args = false |  | ||||||
| allow_defined_top = true |  | ||||||
|  |  | ||||||
| globals = { |  | ||||||
|     "minetest", |  | ||||||
| } |  | ||||||
|  |  | ||||||
| read_globals = { |  | ||||||
|     string = {fields = {"split"}}, |  | ||||||
|     table = {fields = {"copy", "getn"}}, |  | ||||||
|  |  | ||||||
|     -- Builtin |  | ||||||
|     "vector", "ItemStack", |  | ||||||
|     "dump", "DIR_DELIM", "VoxelArea", "Settings", |  | ||||||
|  |  | ||||||
|     -- MTG |  | ||||||
|     "default", "sfinv", "creative", |  | ||||||
| } |  | ||||||
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,27 +1,14 @@ | |||||||
| # minetest-toolranks [toolranks] | # minetest-toolranks | ||||||
|  |  | ||||||
| Minetest tool ranks mod | Minetest tool ranks mod | ||||||
|  |  | ||||||
| Tools gain levels for digging nodes. Higher level tools dig faster and take longer to wear out. | Tool gains levels for digging nodes. Higher level tools take longer to | ||||||
|  | wear out. | ||||||
|  |  | ||||||
| ## Are you a mod developer? | ## Are you a mod developer? | ||||||
|  |  | ||||||
| Does one of your mods add new tools? | Does one of your mods add new tools? | ||||||
| If so, to support this mod, add this code to your mod, after your tool's code: | If so, to support this mod, check if it is loaded with | ||||||
|  | ```minetest.get_modpath("toolranks")``` | ||||||
| ```lua | and then replace all after_use definitions with toolranks.new_afteruse. | ||||||
| if minetest.get_modpath("toolranks") then | Optionaly, you can also replace tools description with | ||||||
|     minetest.override_item("mymod:mytool", { | ```toolranks.create_description("Tool Name", 0, 1)``` | ||||||
|         original_description = "My Tool", | and then set original_description to your tools name. | ||||||
|         description = toolranks.create_description("My Tool"), |  | ||||||
|         after_use = toolranks.new_afteruse |  | ||||||
|     }) |  | ||||||
|     end |  | ||||||
| end |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| Or alternatively, you can use the helper function: |  | ||||||
|  |  | ||||||
| ```lua |  | ||||||
| toolranks.add_tool("mymod:mytool") |  | ||||||
| ``` |  | ||||||
|   | |||||||
| @@ -1 +1,2 @@ | |||||||
| default | default | ||||||
|  | moreores? | ||||||
|   | |||||||
							
								
								
									
										364
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										364
									
								
								init.lua
									
									
									
									
									
								
							| @@ -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 = {} | ||||||
|  |  | ||||||
| @@ -10,167 +9,282 @@ toolranks.colors = { | |||||||
|   white = minetest.get_color_escape_sequence("#ffffff") |   white = minetest.get_color_escape_sequence("#ffffff") | ||||||
| } | } | ||||||
|  |  | ||||||
| local max_speed = tonumber(minetest.settings:get("toolranks_speed_multiplier")) or 2.0 |  | ||||||
| local max_use = tonumber(minetest.settings:get("toolranks_use_multiplier")) or 2.0 |  | ||||||
| local max_level = tonumber(minetest.settings:get("toolranks_levels")) or 10 |  | ||||||
| local level_digs = tonumber(minetest.settings:get("toolranks_level_digs")) or 500 |  | ||||||
| local level_multiplier = 1 / max_level |  | ||||||
|  |  | ||||||
| function toolranks.get_tool_type(description) | function toolranks.get_tool_type(description) | ||||||
|   if not description then |   if not description then | ||||||
|     return "tool" |     return "tool" | ||||||
|  |   elseif string.find(description, "Pickaxe") then | ||||||
|  |     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 | ||||||
|  |  | ||||||
| function toolranks.get_level(uses) | function toolranks.create_description(name, uses, level) | ||||||
|   if type(uses) == "number" and uses > 0 then |  | ||||||
|     return math.min(max_level, math.floor(uses / level_digs)) |  | ||||||
|   end |  | ||||||
|   return 0 |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function toolranks.create_description(name, uses) |  | ||||||
|   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, |  | ||||||
|     toolranks.get_level(uses), |  | ||||||
|     S(tooltype), |  | ||||||
|     toolranks.colors.grey, |  | ||||||
|     (type(uses) == "number" and uses or 0) |  | ||||||
|   ) |  | ||||||
|   return newdesc |   return newdesc | ||||||
| end | end | ||||||
|  |  | ||||||
|  | function toolranks.get_level(uses) | ||||||
|  |   if uses <= 250 then | ||||||
|  |     return 1 | ||||||
|  |   elseif uses < 500 then | ||||||
|  |     return 2 | ||||||
|  |   elseif uses < 1000 then | ||||||
|  |     return 3 | ||||||
|  |   elseif uses < 2500 then | ||||||
|  |     return 4 | ||||||
|  |   elseif uses < 5000 then | ||||||
|  |     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 | ||||||
|  | 	  return 10 | ||||||
|  |   end | ||||||
|  | end | ||||||
|  |  | ||||||
| function toolranks.new_afteruse(itemstack, user, node, digparams) | function toolranks.new_afteruse(itemstack, user, node, digparams) | ||||||
|   local itemmeta = itemstack:get_meta() |   local itemmeta  = itemstack:get_meta() -- Metadata | ||||||
|   local itemdef = itemstack:get_definition() |   local itemdef   = itemstack:get_definition() -- Item Definition | ||||||
|   local itemdesc = itemdef.original_description |   local itemdesc  = itemdef.original_description -- Original Description | ||||||
|   local dugnodes = tonumber(itemmeta:get_string("dug")) or 0 |   local dugnodes  = tonumber(itemmeta:get_string("dug")) or 0 -- Number of nodes dug | ||||||
|   local lastlevel = tonumber(itemmeta:get_string("lastlevel")) or 0 |   local lastlevel = tonumber(itemmeta:get_string("lastlevel")) or 1 -- Level the tool had | ||||||
|  |                                                                     -- on the last dig | ||||||
|   local most_digs = mod_storage:get_int("most_digs") 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 most_digs_user = mod_storage:get_string("most_digs_user") or 0 | ||||||
|  |    | ||||||
|   if digparams.wear > 0 then -- Only count nodes that spend the tool |   -- Only count nodes that spend the tool | ||||||
|     dugnodes = dugnodes + 1 |   if(digparams.wear > 0) then | ||||||
|     itemmeta:set_string("dug", dugnodes) |    dugnodes = dugnodes + 1 | ||||||
|  |    itemmeta:set_string("dug", dugnodes) | ||||||
|   end |   end | ||||||
|  |   if(dugnodes > most_digs) then | ||||||
|   if dugnodes > most_digs then |     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. | ||||||
|       minetest.chat_send_all(S( |       most_digs_user = user:get_player_name() | ||||||
|         "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(), "Your tool is about to break!") | ||||||
|     minetest.chat_send_player(user:get_player_name(), S("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, | ||||||
|     }) |     }) | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   local level = toolranks.get_level(dugnodes) |   local level = toolranks.get_level(dugnodes) | ||||||
|  |  | ||||||
|   if lastlevel < level then |   if lastlevel < level then | ||||||
|     local levelup_text = S( |     local levelup_text = "Your " .. toolranks.colors.green .. | ||||||
|       "Your @1@2@3 just leveled up!", |                          itemdesc .. toolranks.colors.white .. | ||||||
|       toolranks.colors.green, |                          " just leveled up!" | ||||||
|       itemdesc, |  | ||||||
|       toolranks.colors.white |  | ||||||
|     ) |  | ||||||
|     minetest.chat_send_player(user:get_player_name(), levelup_text) |  | ||||||
|     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, | ||||||
|     }) |     }) | ||||||
|  |     minetest.chat_send_player(user:get_player_name(), levelup_text) | ||||||
|     local speed_multiplier = 1 + (level * level_multiplier * (max_speed - 1)) |     itemmeta:set_string("lastlevel", level) | ||||||
|     local use_multiplier = 1 + (level * level_multiplier * (max_use - 1)) |  | ||||||
|     local caps = table.copy(itemdef.tool_capabilities) |  | ||||||
|  |  | ||||||
|     caps.full_punch_interval = caps.full_punch_interval and (caps.full_punch_interval / speed_multiplier) |  | ||||||
|     caps.punch_attack_uses = caps.punch_attack_uses and (caps.punch_attack_uses * use_multiplier) |  | ||||||
|  |  | ||||||
|     for _,c in pairs(caps.groupcaps) do |  | ||||||
|       c.uses = c.uses * use_multiplier |  | ||||||
|       for i,t in ipairs(c.times) do |  | ||||||
|         c.times[i] = t / speed_multiplier |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|     itemmeta:set_tool_capabilities(caps) |  | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   itemmeta:set_string("lastlevel", level) |   local newdesc   = toolranks.create_description(itemdesc, dugnodes, level) | ||||||
|   itemmeta:set_string("description", toolranks.create_description(itemdesc, dugnodes)) |  | ||||||
|   itemstack:add_wear(digparams.wear) |   itemmeta:set_string("description", newdesc) | ||||||
|  |   local wear = digparams.wear | ||||||
|  |   if level > 1 then | ||||||
|  |     wear = digparams.wear / (1 + level / 4) | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   --minetest.chat_send_all("wear="..wear.."Original wear: "..digparams.wear.." 1+level/4="..1+level/4) | ||||||
|  |   -- Uncomment for testing ^ | ||||||
|  |  | ||||||
|  |   itemstack:add_wear(wear) | ||||||
|  |  | ||||||
|   return itemstack |   return itemstack | ||||||
| end | end | ||||||
|  |  | ||||||
| -- Helper function | minetest.override_item("default:pick_diamond", { | ||||||
| function toolranks.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), | 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 | ||||||
| toolranks.add_tool("default:sword_wood") | minetest.override_item("default:sword_wood", { | ||||||
| toolranks.add_tool("default:sword_stone") | 	original_description = "Wooden Sword", | ||||||
| toolranks.add_tool("default:sword_steel") | 	description = toolranks.create_description("Wooden Sword", 0, 1), | ||||||
| toolranks.add_tool("default:sword_bronze") | 	after_use = toolranks.new_afteruse}) | ||||||
| toolranks.add_tool("default:sword_mese") |  | ||||||
| toolranks.add_tool("default:sword_diamond") |  | ||||||
|  |  | ||||||
| -- Pickaxe | minetest.override_item("default:sword_stone", { | ||||||
| toolranks.add_tool("default:pick_wood") | 	original_description = "Stone Sword", | ||||||
| toolranks.add_tool("default:pick_stone") | 	description = toolranks.create_description("Stone Sword", 0, 1), | ||||||
| toolranks.add_tool("default:pick_steel") | 	after_use = toolranks.new_afteruse}) | ||||||
| toolranks.add_tool("default:pick_bronze") |  | ||||||
| toolranks.add_tool("default:pick_mese") |  | ||||||
| toolranks.add_tool("default:pick_diamond") |  | ||||||
|  |  | ||||||
| -- Axe | minetest.override_item("default:sword_steel", { | ||||||
| toolranks.add_tool("default:axe_wood") | 	original_description = "Steel Sword", | ||||||
| toolranks.add_tool("default:axe_stone") | 	description = toolranks.create_description("Steel Sword", 0, 1), | ||||||
| toolranks.add_tool("default:axe_steel") | 	after_use = toolranks.new_afteruse}) | ||||||
| toolranks.add_tool("default:axe_bronze") |  | ||||||
| toolranks.add_tool("default:axe_mese") |  | ||||||
| toolranks.add_tool("default:axe_diamond") |  | ||||||
|  |  | ||||||
| -- Shovel | minetest.override_item("default:sword_bronze", { | ||||||
| toolranks.add_tool("default:shovel_wood") | 	original_description = "Bronze Sword", | ||||||
| toolranks.add_tool("default:shovel_stone") | 	description = toolranks.create_description("Bronze Sword", 0, 1), | ||||||
| toolranks.add_tool("default:shovel_steel") | 	after_use = toolranks.new_afteruse}) | ||||||
| toolranks.add_tool("default:shovel_bronze") |  | ||||||
| toolranks.add_tool("default:shovel_mese") | minetest.override_item("default:sword_mese", { | ||||||
| toolranks.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.") | ||||||
|   | |||||||
| @@ -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! |  | ||||||
| @@ -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.=L’outil 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 ! |  | ||||||
							
								
								
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							| @@ -1,2 +1 @@ | |||||||
| name = toolranks | name = toolranks | ||||||
| depends = default |  | ||||||
|   | |||||||
| @@ -1,8 +0,0 @@ | |||||||
| # Number of tool levels |  | ||||||
| toolranks_levels (Levels) int 10 |  | ||||||
| # Number of nodes that need to be dug to reach the next tool level |  | ||||||
| toolranks_level_digs (Digs per level) int 500 |  | ||||||
| # Dig speed multiplier at maximum tool level (1.0 to disable) |  | ||||||
| toolranks_speed_multiplier (Dig speed multiplier) float 2.0 1.0 10.0 |  | ||||||
| # Durability multiplier at maximum tool level (1.0 to disable) |  | ||||||
| toolranks_use_multiplier (Durability multiplier) float 2.0 1.0 10.0 |  | ||||||
		Посилання в новій задачі
	
	Block a user