From 388a4473316b2f793982339f39f140fe16b210c7 Mon Sep 17 00:00:00 2001 From: philipmi Date: Mon, 3 Jan 2022 22:30:14 +0100 Subject: [PATCH] Add support for cacaotree from cool_trees + remove unnecessary setting --- README.md | 2 +- depends.txt | 1 + init.lua | 55 +++++++++++++++++++++++++++++++++++++++--------- settingtypes.txt | 1 - 4 files changed, 47 insertions(+), 12 deletions(-) delete mode 100644 settingtypes.txt diff --git a/README.md b/README.md index 7766c1c..fbbcce9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This mod causes fruits on trees from other mods to regrow like apples in the 5.0 Cool_trees modpack, ethereal, farming_plus and moretrees are supported, but maybe there are other mods with this problem that I don't know about. Please tell me in the Minetest Forum topic! -There is also the possibility to enable regrowing apples in Minetest Settings. Notice that this is only necessary for older versions than MT 5.0. +Apples in older versions than Minetest 5.0 will also regrow. Credits ---- diff --git a/depends.txt b/depends.txt index 70878e3..48fd24d 100644 --- a/depends.txt +++ b/depends.txt @@ -1,5 +1,6 @@ default ethereal? +cacaotree? cherrytree? chestnuttree? clementinetree? diff --git a/init.lua b/init.lua index fb8c1ef..19ae9c1 100644 --- a/init.lua +++ b/init.lua @@ -1,5 +1,3 @@ -local regrowing_apples = minetest.settings:get_bool("regrowing_apples", true) - local add_fruit_regrowable = function(fruit, node, leaves) -- check if node exists @@ -7,6 +5,42 @@ local add_fruit_regrowable = function(fruit, node, leaves) return end + -- make sure cacao pod from cool_trees isn't placed by player + if node == "cacaotree:pod" then + minetest.register_node("regrowing_fruits:cacao", { + description = "Cacao Pod", + drawtype = "nodebox", + tiles = { + "cacaotree_bean_top.png", + "cacaotree_bean_top.png^[transformFY", + "cacaotree_bean_right.png", + "cacaotree_bean_right.png^[transformFX", + "cacaotree_bean_front.png", + }, + paramtype = "light", + paramtype2 = "wallmounted", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, 0, 0.25, 0.0625, 0.5}, + }, + }, + use_texture_alpha = "clip", + drop = "cacaotree:cacao_beans 10", + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1, not_in_creative_inventory = 1}, + sounds = default.node_sound_leaves_defaults(), + walkable = false, + is_ground_content = false, + }) + + minetest.register_on_placenode(function(pos, newnode, placer) + if placer:is_player() and newnode.name == "cacaotree:pod" then + minetest.set_node(pos, {name = "regrowing_fruits:cacao", param2 = newnode.param2}) + end + end) + end + local groups = node.groups if minetest.get_item_group(node, "attached_node") == 1 then groups = {fleshy=3, dig_immediate=3, flammable=2, leafdecay = 1, leafdecay_drop = 1} @@ -24,8 +58,10 @@ local add_fruit_regrowable = function(fruit, node, leaves) end, on_dig = minetest.node_dig, -- override on_dig functions causing regrowth not to work after_dig_node = function(pos, oldnode, oldmetadata, digger) - if oldnode.param2 == 0 and oldnode.name ~= "plumtree:plum" or oldnode.name == "plumtree:plum" and oldnode.param2 == 1 then - minetest.set_node(pos, {name = "regrowing_fruits:"..fruit.."_mark"}) + if oldnode.param2 == 0 and oldnode.name ~= "plumtree:plum" + or oldnode.name == "plumtree:plum" and oldnode.param2 == 1 + or oldnode.name == "cacaotree:pod" then + minetest.set_node(pos, {name = "regrowing_fruits:"..fruit.."_mark", param2 = oldnode.param2}) minetest.get_node_timer(pos):start(math.random(300, 1500)) end end, @@ -48,8 +84,8 @@ local add_fruit_regrowable = function(fruit, node, leaves) minetest.remove_node(pos) elseif minetest.get_node_light(pos) < 13 then minetest.get_node_timer(pos):start(200) - elseif node == "plumtree:plum" then - minetest.set_node(pos, {name = node, param2 = 1}) + elseif node == "cacaotree:pod" or node == "plumtree:plum" then + minetest.set_node(pos, {name = node, param2 = minetest.get_node(pos).param2}) else minetest.set_node(pos, {name = node}) end @@ -58,9 +94,7 @@ local add_fruit_regrowable = function(fruit, node, leaves) end -- apples -if regrowing_apples then - add_fruit_regrowable("apple", "default:apple", "default:leaves") -end +add_fruit_regrowable("apple", "default:apple", "default:leaves") -- ethereal add_fruit_regrowable("banana","ethereal:banana", "ethereal:bananaleaves") @@ -70,7 +104,8 @@ add_fruit_regrowable("lemon", "ethereal:lemon", "ethereal:lemon_leaves") add_fruit_regrowable("olive", "ethereal:olive", "ethereal:olive_leaves") add_fruit_regrowable("orange", "ethereal:orange", "ethereal:orange_leaves") --- cool_trees TODO: add cacao +-- cool_trees +add_fruit_regrowable("cacao", "cacaotree:pod", "cacaotree:trunk") -- use trunk instead of leaves add_fruit_regrowable("cherry", "cherrytree:cherries", "cherrytree:blossom_leaves") add_fruit_regrowable("chestnut", "chestnuttree:bur", "chestnuttree:leaves") add_fruit_regrowable("clementine", "clementinetree:clementine", "clementinetree:leaves") diff --git a/settingtypes.txt b/settingtypes.txt deleted file mode 100644 index e40b9b8..0000000 --- a/settingtypes.txt +++ /dev/null @@ -1 +0,0 @@ -regrowing_apples (Regrowing apples: unnecessary for MT 5.x) bool false \ No newline at end of file