From 2734139214bef2f4508002ac4ded8c0dd6df3be0 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 24 Aug 2024 11:08:09 +0100 Subject: [PATCH] tweak and tidy code --- init.lua | 31 ++++++++++++++++--------------- mod.conf | 3 +-- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/init.lua b/init.lua index 73e9578..afdf258 100644 --- a/init.lua +++ b/init.lua @@ -1,12 +1,13 @@ +-- setup global with min and max growth invertals from settings + regrow = { - -- get custom min and max growth intervals from settings min_interval = tonumber(minetest.settings:get("regrow_min_interval")) or 600, max_interval = tonumber(minetest.settings:get("regrow_max_interval")) or 1200 } - -- hidden node that runs timer and regrows fruit stored in meta + minetest.register_node("regrow:hidden", { drawtype = "airlike", paramtype = "light", @@ -31,9 +32,7 @@ minetest.register_node("regrow:hidden", { local meta = minetest.get_meta(pos) - if not meta then - return - end + if not meta then return end local fruit = meta:get_string("fruit") or "" local leaf = meta:get_string("leaf") or "" @@ -48,16 +47,17 @@ minetest.register_node("regrow:hidden", { end }) --- helper function to register fruit nodes +-- global function to register fruit nodes + regrow.add_fruit = function(nodename, leafname, ignore_param2) -- does node actually exist ? - if not minetest.registered_nodes[nodename] then - return - end + if not minetest.registered_nodes[nodename] then return end -- change attached_node values so fruits regrow instead of dropping - local groups = minetest.registered_nodes[nodename].groups + local def = minetest.registered_nodes[nodename] + local groups = def.groups and table.copy(def.groups) or {} + groups.attached_node = 0 minetest.override_item(nodename, { @@ -69,9 +69,7 @@ regrow.add_fruit = function(nodename, leafname, ignore_param2) after_dig_node = function(pos, oldnode, oldmetadata, digger) -- if node has been placed by player then do not regrow - if ignore_param2 ~= true and oldnode.param2 > 0 then - return - end + if ignore_param2 ~= true and oldnode.param2 > 0 then return end -- replace fruit with regrowth node, set fruit & leaf name minetest.set_node(pos, {name = "regrow:hidden"}) @@ -80,12 +78,13 @@ regrow.add_fruit = function(nodename, leafname, ignore_param2) meta:set_string("fruit", nodename) meta:set_string("leaf", leafname) - meta:set_int("p2", oldnode.param2 or 0) + meta:set_int("p2", (oldnode.param2 or 0)) end, }) end --- wait until mods are loaded to save dependency mess +-- override fruits helper + local function add_fruits() -- default @@ -137,6 +136,8 @@ local function add_fruits() regrow.add_fruit("moretrees:spruce_cone", "moretrees:spruce_leaves") end +-- wait until mods are loaded to save dependency mess + if minetest.register_on_mods_loaded then minetest.register_on_mods_loaded(add_fruits) else diff --git a/mod.conf b/mod.conf index 7598857..4951a1f 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,3 @@ name = regrow -depends = -optional_depends = description = Helps to regrow tree fruits instead of replanting saplings. +min_minetest_version = 5.0