From 4db884e00cf87f734146a098732b70a1f51934a3 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 24 Feb 2019 15:44:42 +0100 Subject: [PATCH] Deprecate hoes to follow changes in Minetest Game Hoes crafted from "rare" materials were deprecated in https://github.com/minetest/minetest_game/commit/9c459e77ac943f10c74de3bdd420e07a2b8bb56f. Hoes are still available in existing worlds, but they cannot be crafted anymore. This closes #29. --- .luacheckrc | 1 + CHANGELOG.md | 9 +++++- depends.txt | 1 + init.lua | 76 ++++++++++++++++----------------------------------- locale/de.txt | 1 - locale/nl.txt | 1 - 6 files changed, 34 insertions(+), 55 deletions(-) diff --git a/.luacheckrc b/.luacheckrc index c00e028..b1eb1c9 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -25,6 +25,7 @@ stds.minetest = { } read_globals = { + "farming", "intllib", "mg", } diff --git a/CHANGELOG.md b/CHANGELOG.md index 612b615..1ccd36d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added -- Brazilian translation. +- Brazilian and Dutch translations. + +### Deprecated + +- Deprecated hoes to follow Minetest Game's deprecation of hoes + made of "rare" materials. + - Hoes are still available in existing worlds, but they + cannot be crafted anymore. ### Fixed diff --git a/depends.txt b/depends.txt index 0219052..0dc152f 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,3 @@ default mg? +farming? diff --git a/init.lua b/init.lua index 1a77ad3..cc6f27d 100644 --- a/init.lua +++ b/init.lua @@ -37,37 +37,6 @@ end local default_stone_sounds = default.node_sound_stone_defaults() local default_metal_sounds = default.node_sound_metal_defaults() -local function hoe_on_use(itemstack, user, pointed_thing, uses) - local pt = pointed_thing - -- Check if pointing at a node: - if not pt then - return - end - if pt.type ~= "node" then - return - end - - local under = minetest.get_node(pt.under) - local pos = {x = pt.under.x, y = pt.under.y + 1, z = pt.under.z} - local above = minetest.get_node(pos) - - -- Return if any of the nodes is not registered: - if not minetest.registered_nodes[under.name] then return end - if not minetest.registered_nodes[above.name] then return end - - -- Check if the node above the pointed thing is air: - if above.name ~= "air" then return end - - -- Check if pointing at dirt: - if minetest.get_item_group(under.name, "soil") ~= 1 then return end - - -- Turn the node into soil, wear out item and play sound: - minetest.set_node(pt.under, {name ="farming:soil"}) - minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5}) - itemstack:add_wear(65535 / (uses - 1)) - return itemstack -end - local function get_recipe(c, name) if name == "sword" then return {{c}, {c}, {"group:stick"}} @@ -81,9 +50,6 @@ local function get_recipe(c, name) if name == "pick" then return {{c, c, c}, {"", "group:stick", ""}, {"", "group:stick", ""}} end - if name == "hoe" then - return {{c, c}, {"", "group:stick"}, {"", "group:stick"}} - end if name == "block" then return {{c, c, c}, {c, c, c}, {c, c, c}} end @@ -189,7 +155,7 @@ local function add_ore(modname, description, mineral_name, oredef) max_drop_level = 3, groupcaps = tooldef }, - sound = {breaks = "default_tool_breaks"}, + sound = {breaks = "default_tool_breaks"}, } if tool_name == "sword" then @@ -214,27 +180,33 @@ local function add_ore(modname, description, mineral_name, oredef) tdef.full_punch_interval = oredef.full_punch_interval tdef.tool_capabilities.damage_groups = oredef.damage_groups tdef.description = S("%s Shovel"):format(S(description)) - tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90" - end - - if tool_name == "hoe" then - tdef.description = S("%s Hoe"):format(S(description)) - local uses = tooldef.uses - tooldef.uses = nil - tdef.on_use = function(itemstack, user, pointed_thing) - return hoe_on_use(itemstack, user, pointed_thing, uses) - end + tdef.wield_image = toolimg_base .. tool_name .. ".png^[transformR90" end local fulltool_name = tool_base .. tool_name .. tool_post - minetest.register_tool(fulltool_name, tdef) - minetest.register_alias(tool_name .. tool_post, fulltool_name) - if oredef.makes.ingot then - minetest.register_craft({ - output = fulltool_name, - recipe = get_recipe(ingot, tool_name) - }) + + if tool_name == "hoe" and minetest.get_modpath("farming") then + tdef.max_uses = tooldef.uses + tdef.description = S("%s Hoe"):format(S(description)) + farming.register_hoe(fulltool_name, tdef) end + + -- Hoe registration is handled above. + -- There are no crafting recipes for hoes, as they have been + -- deprecated from Minetest Game: + -- https://github.com/minetest/minetest_game/commit/9c459e77a + if tool_name ~= "hoe" then + minetest.register_tool(fulltool_name, tdef) + + if oredef.makes.ingot then + minetest.register_craft({ + output = fulltool_name, + recipe = get_recipe(ingot, tool_name) + }) + end + end + + minetest.register_alias(tool_name .. tool_post, fulltool_name) end end diff --git a/locale/de.txt b/locale/de.txt index 2eb6075..070faf9 100644 --- a/locale/de.txt +++ b/locale/de.txt @@ -10,7 +10,6 @@ %s Shovel = %sschaufel %s Axe = %saxt %s Sword = %sschwert -%s Hoe = %shacke Copper = Kupfer Tin = Zinn diff --git a/locale/nl.txt b/locale/nl.txt index c90eb60..954045f 100644 --- a/locale/nl.txt +++ b/locale/nl.txt @@ -8,7 +8,6 @@ %s Shovel = %s Schep %s Axe = %s Bijl %s Sword = %s Zwaard -%s Hoe = %s Schoffel Copper = Koper Tin = Tin