From a07989e04022f25154a468834041c6fcce1cd858 Mon Sep 17 00:00:00 2001 From: mckaygerhard Date: Mon, 2 Jan 2023 01:33:07 -0400 Subject: [PATCH] regrow mod simplified and customized, for info cHECK mod readme inside --- README.md | 8 +- mods/regrow/description.txt | 1 + mods/regrow/init.lua | 146 +++++++++++++++++++++++++++++++++++ mods/regrow/license.txt | 21 +++++ mods/regrow/mod.conf | 4 + mods/regrow/readme.MD | 118 ++++++++++++++++++++++++++++ mods/regrow/screenshot.jpg | Bin 0 -> 43653 bytes mods/regrow/settingtypes.txt | 5 ++ 8 files changed, 300 insertions(+), 3 deletions(-) create mode 100644 mods/regrow/description.txt create mode 100644 mods/regrow/init.lua create mode 100644 mods/regrow/license.txt create mode 100644 mods/regrow/mod.conf create mode 100644 mods/regrow/readme.MD create mode 100644 mods/regrow/screenshot.jpg create mode 100644 mods/regrow/settingtypes.txt diff --git a/README.md b/README.md index 0d9e8d5..1e3781f 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,16 @@ To download you can play this game with the following minetest engines: #### Mods * minetest default -* minetest Auth Redux as `auth_rx` [mods/auth_rx](mods/auth_rx) from https://codeberg.org/minenux/minetest-mod-auth_rx +* sorceredkid auth mod + * minetest Auth Redux as `auth_rx` [mods/auth_rx](mods/auth_rx) from https://codeberg.org/minenux/minetest-mod-auth_rx * so then minetest Formspecs as `formspecs` [mods/formspecs](mods/formspecs) from https://codeberg.org/minenux/minetest-mod-formspecs * minetest Random Spawn as `rspawn` [mods/rspawn](mods/rspawn) from https://codeberg.org/minenux/minetest-mod-rspawn * so then default beds as `beds` [mods/beds](mods/beds) from default 0.4 * minetest floatlands as `floatlands` [mods/floatlands](mods/floatlands) derived from Floatlands Realm made to this servers, as https://codeberg.org/minenux/minetest-mod-floatland * so then default flowers as `flowers` are need. Later this will need ethereal modifications. -* tenplus1 simple skins as `skins` [mods/skins](mods/skins) from https://codeberg.org/minenux/minetest-mod-simple_skins - * customized so this was renamed to mantain consistency and simplification, also some settiungs were minimalized +* tenplus1 customized mods + * simple_skins as `skins` [mods/skins](mods/skins) from https://codeberg.org/minenux/minetest-mod-simple_skins + * regrow as `regrow` [mods/regrow](mods/regrow) from https://codeberg.org/minenux/minetest-mod-regrow ## Licensing diff --git a/mods/regrow/description.txt b/mods/regrow/description.txt new file mode 100644 index 0000000..a06d470 --- /dev/null +++ b/mods/regrow/description.txt @@ -0,0 +1 @@ +FRUIT regrow instead of replanting saplings diff --git a/mods/regrow/init.lua b/mods/regrow/init.lua new file mode 100644 index 0000000..9b02780 --- /dev/null +++ b/mods/regrow/init.lua @@ -0,0 +1,146 @@ + +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 +} + +local is_51 = minetest.has_feature("formspec_version_element") or nil + +-- hidden node that runs timer and regrows fruit stored in meta +minetest.register_node("regrow:hidden", { + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + groups = {not_in_creative_inventory = 1}, + + -- once placed start random timer between min and max interval setting + on_construct = function(pos) + + local time = math.random(regrow.min_interval, regrow.max_interval) + + minetest.get_node_timer(pos):start(time) + end, + + -- when timer reached check which fruit to place if tree still exists + on_timer = function(pos, elapsed) + + local meta = minetest.get_meta(pos) + + if not meta then + return + end + + local fruit = meta:get_string("fruit") or "" + local leaf = meta:get_string("leaf") or "" + local p2 = meta:get_int("p2") or 0 + + if fruit == "" or leaf == "" + or not minetest.find_node_near(pos, 1, leaf) then + fruit = "air" + end + + minetest.set_node(pos, {name = fruit, param2 = p2}) + end +}) + +-- helper 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 + + -- change attached_node values so fruits regrow instead of dropping + local groups = minetest.registered_nodes[nodename].groups + groups.attached_node = 0 + + minetest.override_item(nodename, { + + -- override on_dig to remove any special functions + on_dig = minetest.node_dig, + + -- override after_dig_node to start regrowth + 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 + + -- replace fruit with regrowth node, set fruit & leaf name + minetest.set_node(pos, {name = "regrow:hidden"}) + + local meta = minetest.get_meta(pos) + + meta:set_string("fruit", nodename) + meta:set_string("leaf", leafname) + meta:set_int("p2", oldnode.param2 or 0) + end, + }) +end + +regrow.regrow = function() + -- default + regrow.add_fruit("default:apple", "default:leaves") + + -- ethereal + regrow.add_fruit("ethereal:banana", "ethereal:bananaleaves") + regrow.add_fruit("ethereal:banana_bunch", "ethereal:bananaleaves") + regrow.add_fruit("ethereal:orange", "ethereal:orange_leaves") + regrow.add_fruit("ethereal:coconut", "ethereal:palmleaves") + regrow.add_fruit("ethereal:lemon", "ethereal:lemon_leaves") + regrow.add_fruit("ethereal:olive", "ethereal:olive_leaves") +-- regrow.add_fruit("ethereal:golden_apple", "ethereal:yellowleaves") -- too OP + + -- cool trees + regrow.add_fruit("cacaotree:pod", "cacaotree:trunk", true) + regrow.add_fruit("cherrytree:cherries", "cherrytree:blossom_leaves") + regrow.add_fruit("clementinetree:clementine", "clementinetree:leaves") + regrow.add_fruit("ebony:persimmon", "ebony:leaves") + regrow.add_fruit("lemontree:lemon", "lemontree:leaves") + regrow.add_fruit("oak:acorn", "oak:leaves") + regrow.add_fruit("palm:coconut", "palm:leaves") +-- regrow.add_fruit("plumtree:plum", "plumtree:leaves") -- regrows already + regrow.add_fruit("pomegranate:pomegranate", "pomegranate:leaves") + + -- farming plus + regrow.add_fruit("farming_plus:cocoa", "farming_plus:cocoa_leaves") + regrow.add_fruit("farming_plus:banana", "farming_plus:banana_leaves") + + -- aotearoa + regrow.add_fruit("aotearoa:karaka_fruit", "aotearoa:karaka_leaves") + regrow.add_fruit("aotearoa:miro_fruit", "aotearoa:miro_leaves") + regrow.add_fruit("aotearoa:tawa_fruit", "aotearoa:tawa_leaves") + regrow.add_fruit("aotearoa:hinau_fruit", "aotearoa:hinau_leaves") + regrow.add_fruit("aotearoa:kawakawa_fruit", "aotearoa:kawakawa_leaves") + + -- australia + regrow.add_fruit("australia:cherry", "australia:cherry_leaves") + regrow.add_fruit("australia:lilly_pilly_berries", "australia:lilly_pilly_leaves") + regrow.add_fruit("australia:macadamia", "australia:macadamia_leaves") + regrow.add_fruit("australia:mangrove_apple", "australia:mangrove_apple_leaves") + regrow.add_fruit("australia:moreton_bay_fig", "australia:moreton_bay_fig_leaves") + regrow.add_fruit("australia:quandong", "australia:quandong_leaves") + + -- more trees + regrow.add_fruit("moretrees:acorn", "moretrees:oak_leaves") + regrow.add_fruit("moretrees:cedar_cone", "moretrees:cedar_leaves") + regrow.add_fruit("moretrees:fir_cone", "moretrees:fir_leaves") + regrow.add_fruit("moretrees:spruce_cone", "moretrees:spruce_leaves") +end + +if is_51 then + -- wait until mods are loaded to save dependency mess + minetest.register_on_mods_loaded(regrow.regrow) +else + minetest.after(0.1, regrow.regrow) +end + +print("[MOD] Regrow loaded") diff --git a/mods/regrow/license.txt b/mods/regrow/license.txt new file mode 100644 index 0000000..ab1c816 --- /dev/null +++ b/mods/regrow/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/mods/regrow/mod.conf b/mods/regrow/mod.conf new file mode 100644 index 0000000..5735339 --- /dev/null +++ b/mods/regrow/mod.conf @@ -0,0 +1,4 @@ +name = regrow +depends = +optional_depends = +description = FRUIT regrow instead of replanting saplings. diff --git a/mods/regrow/readme.MD b/mods/regrow/readme.MD new file mode 100644 index 0000000..6298f3a --- /dev/null +++ b/mods/regrow/readme.MD @@ -0,0 +1,118 @@ +minetest mod REGROW +=================== + +Mod to regrow fruits with self-contained API + +## Information +----------- + +This mod helps to regrow tree fruits instead of the need for replanting +saplings each time. + + +![screenshot.jpg](screenshot.jpg) + + +## Technical info +-------------- + +This mod is named `regrow` a simplified optimized version +of fruits nodes to reappears on place after dig using timer parameters. + +#### Dependences + +none, core minetest api, the mod has a node detection inside the api function +so its secure to use no matter if the corresponding node exits or not. + +### Configuration + +Each fruit will grow depending of the minimun and maximun value, +the time the fruit appears is random between the two configured values: + +| setting name | description | type | default | observations | +| ------------------- | ----------------------- | --- | ------- | ----------- | +| regrow_min_interval | Minimum Regrow Interval | int | 600 | Seconds | +| regrow_max_interval | Maximum Regrow Interval | int | 1200 | seconds | + +### Overview: + +Based on "endless_apples" by Shara RedCat (2018). Its starting +at https://forum.minetest.net/viewtopic.php?p=379158#p379158 to solve +an issue over growing fruits and now is mantained. + +The mod works as is but can be used for other mods, currently the mod +has support for `ethereal`, `farming_plus`, `australia`, `aotearoa`, +and `moretrees`. It also support some special others. + +#### Nodes + +| MOD supported | Fruit to regrow (node) | Sustitute when growing (node) | +| ------------- | ---------------------- | ----------------------------- | +| default | default:apple | default:leaves | +| ethereal | ethereal:banana | ethereal:bananaleaves | +| ethereal | ethereal:banana_bunch | ethereal:bananaleaves | +| ethereal | ethereal:orange | ethereal:orange_leaves | +| ethereal | ethereal:coconut | ethereal:palmleaves | +| ethereal | ethereal:lemon | ethereal:lemon_leaves | +| ethereal | ethereal:olive | ethereal:olive_leaves | +| ethereal | ethereal:golden_apple | ethereal:yellowleaves (disabled) | +| cool_trees | cacaotree:pod | cacaotree:trunk (override) | +| cool_trees | cherrytree:cherries | cherrytree:blossom_leaves | +| cool_trees | clementinetree:clementine | clementinetree:leaves | +| cool_trees | ebony:persimmon | ebony:leaves | +| cool_trees | lemontree:lemon | lemontree:leaves | +| cool_trees | oak:acorn | oak:leaves | +| cool_trees | palm:coconut | palm:leaves | +| cool_trees | pomegranate:pomegranate | pomegranate:leaves | +| farming_plus | farming_plus:cocoa | farming_plus:cocoa_leaves | +| farming_plus | farming_plus:banana | farming_plus:banana_leaves | +| aotearoa | aotearoa:karaka_fruit | aotearoa:karaka_leaves | +| aotearoa | aotearoa:miro_fruit | aotearoa:miro_leaves | +| aotearoa | aotearoa:tawa_fruit | aotearoa:tawa_leaves | +| aotearoa | aotearoa:hinau_fruit | aotearoa:hinau_leaves | +| aotearoa | aotearoa:kawakawa_fruit | aotearoa:kawakawa_leaves | +| australia | australia:cherry | australia:cherry_leaves | +| australia | australia:lilly_pilly_berries | australia:lilly_pilly_leaves | +| australia | australia:macadamia | australia:macadamia_leaves | +| australia | australia:mangrove_apple | australia:mangrove_apple_leaves | +| australia | australia:moreton_bay_fig | australia:moreton_bay_fig_leaves | +| australia | australia:quandong | australia:quandong_leaves | +| moretrees | moretrees:acorn | moretrees:oak_leaves | +| moretrees | moretrees:cedar_cone | moretrees:cedar_leaves | +| moretrees | moretrees:fir_cone | moretrees:fir_leaves | +| moretrees | moretrees:spruce_cone | moretrees:spruce_leaves | + +#### API usage + +The `regrow.add_fruit()` function is used to override each fruits `after_dig_node` +function so that an placeholder node (nostly leaves) is placed once it is taken, then a timer is +started that will regrow the fruit on completion (unless tree is chopped down). + +#### Definition + +`regrow.add_fruit(fruit_node, leaves_node, param2_check_override)` + +#### Examples: + +``` + regrow.add_fruit("default:apple", "default:leaves") + regrow.add_fruit("cacaotree:pod", "cacaotree:trunk", true) +``` + +Changelog +--------- + +- 0.1 - Initial upload. +- 0.2 - Add checks for player placed fruit and tree's nearby. +- 0.3 - Make add_fruit a global function for other mods to use. +- 0.4 - Add check for fruit tree leaf type before re-growing. +- 0.5 - Ethereal Lemons and Olives can now regrow. +- 0.6 - Add support for cool_trees, farming_plus, aotearoa, australia and moretrees +- 0.7 - Add param2 override for cacao with placement param2 check +- 0.8 - Add custom min and max time regrow interval settings (defaults are 600 and 1200) + + +## LICENSE + +MIT see [license.txt](license.txt) file. + diff --git a/mods/regrow/screenshot.jpg b/mods/regrow/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1f10ccc29c90b09d418d1d6993d5b9d2b233b99 GIT binary patch literal 43653 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≷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 S#-s08c4$rE?h|hHpa0qNREnwq literal 0 HcmV?d00001 diff --git a/mods/regrow/settingtypes.txt b/mods/regrow/settingtypes.txt new file mode 100644 index 0000000..40d5ecf --- /dev/null +++ b/mods/regrow/settingtypes.txt @@ -0,0 +1,5 @@ +# Minimum interval in seconds it takes to regrow fruits +regrow_min_interval (Minimum Regrow Interval) int 600 + +# Maximum interval in seconds it takes to regrow fruits +regrow_max_interval (Maximum Regrow Interval) int 1200