From 34e8c4a106a201152506ade464c55c863b25e65e Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 23 Jul 2023 18:57:09 +0100 Subject: [PATCH 1/7] added bush_classics support --- README.md | 1 + mods.lua | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/README.md b/README.md index 48cd7fd..9a97f2a 100644 --- a/README.md +++ b/README.md @@ -191,6 +191,7 @@ https://forum.minetest.net/viewtopic.php?f=9&t=16446 * Update readme (thanks mckaygerhard) * Recipe changes, player bones craft into 2x bones, bones must be cooked to give bonemeal +* Added bushes_classic support ## LICENSE diff --git a/mods.lua b/mods.lua index cf98c0d..724cfeb 100644 --- a/mods.lua +++ b/mods.lua @@ -327,3 +327,19 @@ if minetest.get_modpath("everness") then {"everness:willow_tree_sapling", Everness.grow_willow_tree, "soil"} }) end + + +if minetest.get_modpath("bushes_classic") then + + local function grow_bush(pos) + + local meta = minetest.get_meta(pos) + local bush_name = meta:get_string("bush_type") or "strawberry" + + minetest.swap_node(pos, {name = "bushes:" .. bush_name .. "_bush"}) + end + + bonemeal:add_sapling({ + {"bushes:fruitless_bush", grow_bush, "soil"}, + }) +end From 10dbedd1e86ec60928ff71a2834067ce0325f91a Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 23 Jul 2023 19:10:24 +0100 Subject: [PATCH 2/7] add bush_classic default if no meta found --- mods.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mods.lua b/mods.lua index 724cfeb..0a4c102 100644 --- a/mods.lua +++ b/mods.lua @@ -334,7 +334,12 @@ if minetest.get_modpath("bushes_classic") then local function grow_bush(pos) local meta = minetest.get_meta(pos) - local bush_name = meta:get_string("bush_type") or "strawberry" + local bush_name = meta:get_string("bush_type") + + -- default if no meta + if not bush_name or bush_name == "" then + bush_name = "strawberry" + end minetest.swap_node(pos, {name = "bushes:" .. bush_name .. "_bush"}) end From 6d212684709ea883ecca4ec5dac75fde8218b215 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Mon, 24 Jul 2023 07:21:55 +0100 Subject: [PATCH 3/7] if no meta dont change bush --- mods.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mods.lua b/mods.lua index 0a4c102..a11d0f1 100644 --- a/mods.lua +++ b/mods.lua @@ -336,12 +336,10 @@ if minetest.get_modpath("bushes_classic") then local meta = minetest.get_meta(pos) local bush_name = meta:get_string("bush_type") - -- default if no meta - if not bush_name or bush_name == "" then - bush_name = "strawberry" + -- only change if meta found + if meta and bush_name then + minetest.swap_node(pos, {name = "bushes:" .. bush_name .. "_bush"}) end - - minetest.swap_node(pos, {name = "bushes:" .. bush_name .. "_bush"}) end bonemeal:add_sapling({ From 2db3f4b026295c06645bb397f317e4ffb7e9d6b4 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Tue, 8 Aug 2023 18:08:25 +0100 Subject: [PATCH 4/7] 5.x --- depends.txt | 14 -------------- description.txt | 1 - init.lua | 2 +- 3 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 depends.txt delete mode 100644 description.txt diff --git a/depends.txt b/depends.txt deleted file mode 100644 index 29db5b1..0000000 --- a/depends.txt +++ /dev/null @@ -1,14 +0,0 @@ -default -farming? -ethereal? -moretrees? -technic_worldgen? -lucky_block? -flowers? -dye? -ferns? -dryplants? -df_trees? -df_farming? -df_primordial_items? -everness? diff --git a/description.txt b/description.txt deleted file mode 100644 index f85f0a2..0000000 --- a/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds bone and bonemeal giving the ability to quickly grow plants and saplings. \ No newline at end of file diff --git a/init.lua b/init.lua index 7bc13e8..0cb3457 100644 --- a/init.lua +++ b/init.lua @@ -7,7 +7,7 @@ local min, max, random = math.min, math.max, math.random -- translation support local S = function(s) return s end -- default boilerplate function -if minetest.get_translator ~= nil then +if minetest.get_translator then S = minetest.get_translator("bonemeal") -- 5.x translation function end From 862fd2bb1c11eb56271a3b162569e80d373dabeb Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Thu, 10 Aug 2023 18:56:27 +0100 Subject: [PATCH 5/7] using mulch on dry_dirt makes it dry_dirt_with_dry_grass --- init.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/init.lua b/init.lua index 0cb3457..c5a1810 100644 --- a/init.lua +++ b/init.lua @@ -88,6 +88,7 @@ minetest.after(0.1, function() if def.groups and def.groups.flower and not node:find("waterlily") + and not node:find("seaweed") and not node:find("xdecor:potted_") and not node:find("df_farming:") then flowers[#flowers + 1] = node @@ -519,6 +520,14 @@ function bonemeal:on_use(pos, strength, node) particle_effect(pos) + return true + + elseif node.name == "default:dry_dirt" and strength == 1 then + + minetest.set_node(pos, {name = "default:dry_dirt_with_dry_grass"}) + + particle_effect(pos) + return true end From 7c89cd6b70d0ad5fe550ca8bb125ab0e154b54ee Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Thu, 10 Aug 2023 18:58:40 +0100 Subject: [PATCH 6/7] edit mod.conf --- mod.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mod.conf b/mod.conf index dc1ebf7..08cc50f 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,5 @@ name = bonemeal +description = Adds bone and bonemeal giving the ability to quickly grow plants and saplings. depends = default optional_depends = lucky_block, farming, ethereal, moretrees, technic_worldgen, flowers, dye, ferns, dryplants, df_trees, df_farming, df_primordial_items, everness -description = Adds bone and bonemeal giving the ability to quickly grow plants and saplings. +min_minetest_version = 5.0 From 8e929e5a1cca502bd1c6a1926c8aadd17ad58acc Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Fri, 1 Sep 2023 12:27:23 +0100 Subject: [PATCH 7/7] remove default dependency, add mineclone support --- init.lua | 164 +++++++++++++++---------------------------------------- mod.conf | 3 +- mods.lua | 91 ++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 121 deletions(-) diff --git a/init.lua b/init.lua index c5a1810..77f5841 100644 --- a/init.lua +++ b/init.lua @@ -1,16 +1,31 @@ -bonemeal = {} +bonemeal = { + item_list = { + bucket_water = "buckets:bucket_water", + bucket_empty = "buckets:bucket_empty", + dirt = "default:dirt", + torch = "default:torch", + coral = "default:coral_skeleton" + } +} + +local a = bonemeal.item_list + +if minetest.get_modpath("mcl_core") then + + a.bucket_water = "mcl_buckets:bucket_water" + a.bucket_empty = "mcl_buckets:bucker_empty" + a.dirt = "mcl_core:dirt" + a.torch = "mcl_torches:torch" + a.coral = "mcl_ocean:dead_horn_coral_block" +end + local path = minetest.get_modpath("bonemeal") local min, max, random = math.min, math.max, math.random - -- translation support -local S = function(s) return s end -- default boilerplate function -if minetest.get_translator then - S = minetest.get_translator("bonemeal") -- 5.x translation function -end - +local S = minetest.get_translator("bonemeal") -- creative check local creative_mode_cache = minetest.settings:get_bool("creative_mode") @@ -18,104 +33,14 @@ function bonemeal.is_creative(name) return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) end - --- default crops -local crops = { - {"farming:cotton_", 8, "farming:seed_cotton"}, - {"farming:wheat_", 8, "farming:seed_wheat"} -} - - --- special pine check for nearby snow -local function pine_grow(pos) - - if minetest.find_node_near(pos, 1, - {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then - - default.grow_new_snowy_pine_tree(pos) - else - default.grow_new_pine_tree(pos) - end -end - - --- special function for cactus growth -local function cactus_grow(pos) - default.grow_cactus(pos, minetest.get_node(pos)) -end - --- special function for papyrus growth -local function papyrus_grow(pos) - default.grow_papyrus(pos, minetest.get_node(pos)) -end - - --- default saplings -local saplings = { - {"default:sapling", default.grow_new_apple_tree, "soil"}, - {"default:junglesapling", default.grow_new_jungle_tree, "soil"}, - {"default:emergent_jungle_sapling", default.grow_new_emergent_jungle_tree, "soil"}, - {"default:acacia_sapling", default.grow_new_acacia_tree, "soil"}, - {"default:aspen_sapling", default.grow_new_aspen_tree, "soil"}, - {"default:pine_sapling", pine_grow, "soil"}, - {"default:bush_sapling", default.grow_bush, "soil"}, - {"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"}, - {"default:large_cactus_seedling", default.grow_large_cactus, "sand"}, - {"default:blueberry_bush_sapling", default.grow_blueberry_bush, "soil"}, - {"default:pine_bush_sapling", default.grow_pine_bush, "soil"}, - {"default:cactus", cactus_grow, "sand"}, - {"default:papyrus", papyrus_grow, "soil"} -} - --- helper tables ( "" denotes a blank item ) -local green_grass = { - "default:grass_2", "default:grass_3", "default:grass_4", - "default:grass_5", "", "" -} - -local dry_grass = { - "default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", - "default:dry_grass_5", "", "" -} - --- loads mods then add all in-game flowers except waterlily -local flowers = {} - -minetest.after(0.1, function() - - for node, def in pairs(minetest.registered_nodes) do - - if def.groups - and def.groups.flower - and not node:find("waterlily") - and not node:find("seaweed") - and not node:find("xdecor:potted_") - and not node:find("df_farming:") then - flowers[#flowers + 1] = node - end - end -end) - - --- default biomes deco -local deco = { - {"default:dirt", green_grass, flowers}, - {"default:dirt_with_grass", green_grass, flowers}, - {"default:dry_dirt", dry_grass, {}}, - {"default:dry_dirt_with_dry_grass", dry_grass, {}}, - {"default:dirt_with_dry_grass", dry_grass, flowers}, - {"default:sand", {}, {"default:dry_shrub", "", "", ""} }, - {"default:desert_sand", {}, {"default:dry_shrub", "", "", ""} }, - {"default:silver_sand", {}, {"default:dry_shrub", "", "", ""} }, - {"default:dirt_with_rainforest_litter", {}, {"default:junglegrass", "", "", ""}} -} - +local crops = {} +local saplings = {} +local deco = {} -- -- local functions -- - -- particles local function particle_effect(pos) @@ -669,11 +594,11 @@ minetest.register_craft({ output = "bonemeal:gelatin_powder 4", recipe = { {"group:bone", "group:bone", "group:bone"}, - {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"}, - {"bucket:bucket_water", "default:torch", "bucket:bucket_water"} + {a.bucket_water, a.bucket_water, a.bucket_water}, + {a.bucket_water, a.torch, a.bucket_water} }, replacements = { - {"bucket:bucket_water", "bucket:bucket_empty 5"} + {a.bucket_water, a.bucket_empty .. " 5"} } }) @@ -697,7 +622,7 @@ end -- bonemeal (from coral skeleton) minetest.register_craft({ output = "bonemeal:bonemeal 2", - recipe = {{"default:coral_skeleton"}} + recipe = {{a.coral}} }) -- mulch @@ -725,25 +650,26 @@ minetest.register_craft({ recipe = {{"bonemeal:bonemeal", "bonemeal:mulch"}} }) - -- add bones to dirt -minetest.override_item("default:dirt", { - drop = { - max_items = 1, - items = { - { - items = {"bonemeal:bone"}, - rarity = 40 - }, - { - items = {"default:dirt"} +if minetest.registered_items[a.dirt] then + + minetest.override_item(a.dirt, { + drop = { + max_items = 1, + items = { + { + items = {"bonemeal:bone"}, + rarity = 40 + }, + { + items = {a.dirt} + } } } - } -}) + }) +end - --- add support for other mods +-- add support for mods dofile(path .. "/mods.lua") -- lucky block support diff --git a/mod.conf b/mod.conf index 08cc50f..86f78e0 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,4 @@ name = bonemeal description = Adds bone and bonemeal giving the ability to quickly grow plants and saplings. -depends = default -optional_depends = lucky_block, farming, ethereal, moretrees, technic_worldgen, flowers, dye, ferns, dryplants, df_trees, df_farming, df_primordial_items, everness +optional_depends = default, mcl_core, lucky_block, farming, ethereal, moretrees, technic_worldgen, flowers, dye, ferns, dryplants, df_trees, df_farming, df_primordial_items, everness min_minetest_version = 5.0 diff --git a/mods.lua b/mods.lua index a11d0f1..debaf3e 100644 --- a/mods.lua +++ b/mods.lua @@ -9,6 +9,97 @@ if minetest.get_modpath("animalmaterials") then end +if minetest.get_modpath("default") then + + -- saplings + + local function pine_grow(pos) + + if minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then + + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + end + + local function cactus_grow(pos) + default.grow_cactus(pos, minetest.get_node(pos)) + end + + local function papyrus_grow(pos) + default.grow_papyrus(pos, minetest.get_node(pos)) + end + + bonemeal:add_sapling({ + {"default:sapling", default.grow_new_apple_tree, "soil"}, + {"default:junglesapling", default.grow_new_jungle_tree, "soil"}, + {"default:emergent_jungle_sapling", default.grow_new_emergent_jungle_tree, "soil"}, + {"default:acacia_sapling", default.grow_new_acacia_tree, "soil"}, + {"default:aspen_sapling", default.grow_new_aspen_tree, "soil"}, + {"default:pine_sapling", pine_grow, "soil"}, + {"default:bush_sapling", default.grow_bush, "soil"}, + {"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"}, + {"default:large_cactus_seedling", default.grow_large_cactus, "sand"}, + {"default:blueberry_bush_sapling", default.grow_blueberry_bush, "soil"}, + {"default:pine_bush_sapling", default.grow_pine_bush, "soil"}, + {"default:cactus", cactus_grow, "sand"}, + {"default:papyrus", papyrus_grow, "soil"} + }) + + -- decoration + + local green_grass = { + "default:grass_2", "default:grass_3", "default:grass_4", + "default:grass_5", "", "" + } + + local dry_grass = { + "default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", + "default:dry_grass_5", "", "" + } + + local flowers = {} + + minetest.after(0.1, function() + + for node, def in pairs(minetest.registered_nodes) do + + if def.groups + and def.groups.flower + and not node:find("waterlily") + and not node:find("seaweed") + and not node:find("xdecor:potted_") + and not node:find("df_farming:") then + flowers[#flowers + 1] = node + end + end + end) + + bonemeal:add_deco({ + {"default:dirt", bonemeal.green_grass, flowers}, + {"default:dirt_with_grass", green_grass, flowers}, + {"default:dry_dirt", dry_grass, {}}, + {"default:dry_dirt_with_dry_grass", dry_grass, {}}, + {"default:dirt_with_dry_grass", dry_grass, flowers}, + {"default:sand", {}, {"default:dry_shrub", "", "", ""} }, + {"default:desert_sand", {}, {"default:dry_shrub", "", "", ""} }, + {"default:silver_sand", {}, {"default:dry_shrub", "", "", ""} }, + {"default:dirt_with_rainforest_litter", {}, {"default:junglegrass", "", "", ""}} + }) +end + + +if farming then + + bonemeal:add_crop({ + {"farming:cotton_", 8, "farming:seed_cotton"}, + {"farming:wheat_", 8, "farming:seed_wheat"} + }) +end + + if farming and farming.mod and farming.mod == "redo" then bonemeal:add_crop({