Compare commits

...

8 Commits

4 changed files with 664 additions and 622 deletions

View File

@ -30,5 +30,7 @@ Changelog:
- 0.8 - Added support for farming redo's new garlic, pepper and onion crops - 0.8 - Added support for farming redo's new garlic, pepper and onion crops
- 0.9 - Added support for farming redo's pea and beetroot crops, checks for place_param - 0.9 - Added support for farming redo's pea and beetroot crops, checks for place_param
- 1.0 - add_deco() now adds to existing item list while set_deco() replaces item list (thanks h-v-smacker) - 1.0 - add_deco() now adds to existing item list while set_deco() replaces item list (thanks h-v-smacker)
- 1.1 - Added {can_bonemeal=1} group for special nodes
- 1.2 - Added support for minetest 5.0 cactus seedling, blueberry bush sapling and emergent jungle tree saplings, additional flowers and pine bush sapling.
Lucky Blocks: 6 Lucky Blocks: 6

View File

@ -5,3 +5,4 @@ ethereal?
moretrees? moretrees?
technic_worldgen? technic_worldgen?
lucky_block? lucky_block?
flowers?

View File

@ -37,11 +37,15 @@ end
local saplings = { local saplings = {
{"default:sapling", default.grow_new_apple_tree, "soil"}, {"default:sapling", default.grow_new_apple_tree, "soil"},
{"default:junglesapling", default.grow_new_jungle_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:acacia_sapling", default.grow_new_acacia_tree, "soil"},
{"default:aspen_sapling", default.grow_new_aspen_tree, "soil"}, {"default:aspen_sapling", default.grow_new_aspen_tree, "soil"},
{"default:pine_sapling", pine_grow, "soil"}, {"default:pine_sapling", pine_grow, "soil"},
{"default:bush_sapling", default.grow_bush, "soil"}, {"default:bush_sapling", default.grow_bush, "soil"},
{"default:acacia_bush_sapling", default.grow_acacia_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"},
} }
-- helper tables ( "" denotes a blank item ) -- helper tables ( "" denotes a blank item )
@ -60,13 +64,19 @@ local flowers = {
"flowers:rose", "flowers:tulip", "flowers:viola", "" "flowers:rose", "flowers:tulip", "flowers:viola", ""
} }
-- 5.0 flower check
if minetest.registered_nodes["flowers:tulip_black"] then
flowers[#flowers + 1] = "flowers:tulip_black"
flowers[#flowers + 1] = "flowers:chrysanthemum_green"
end
-- add additional bakedclay flowers if enabled -- add additional bakedclay flowers if enabled
if minetest.get_modpath("bakedclay") then if minetest.get_modpath("bakedclay") then
flowers[7] = "bakedclay:delphinium" flowers[#flowers + 1] = "bakedclay:delphinium"
flowers[8] = "bakedclay:thistle" flowers[#flowers + 1] = "bakedclay:thistle"
flowers[9] = "bakedclay:lazarus" flowers[#flowers + 1] = "bakedclay:lazarus"
flowers[10] = "bakedclay:mannagrass" flowers[#flowers + 1] = "bakedclay:mannagrass"
flowers[11] = "" flowers[#flowers + 1] = ""
end end
-- default biomes deco -- default biomes deco
@ -202,11 +212,8 @@ local function check_crops(pos, nodename, strength)
particle_effect(pos) particle_effect(pos)
return return
end end
end end
end end
@ -216,12 +223,23 @@ local function check_soil(pos, nodename, strength)
-- set radius according to strength -- set radius according to strength
local side = strength - 1 local side = strength - 1
local tall = math.max(strength - 2, 0) local tall = math.max(strength - 2, 0)
local floor
local groups = minetest.registered_items[nodename]
and minetest.registered_items[nodename].groups or {}
-- only place decoration on one type of surface
if groups.soil then
floor = {"group:soil"}
elseif groups.sand then
floor = {"group:sand"}
else
floor = {nodename}
end
-- get area of land with free space above -- get area of land with free space above
local dirt = minetest.find_nodes_in_area_under_air( local dirt = minetest.find_nodes_in_area_under_air(
{x = pos.x - side, y = pos.y - tall, z = pos.z - side}, {x = pos.x - side, y = pos.y - tall, z = pos.z - side},
{x = pos.x + side, y = pos.y + tall, z = pos.z + side}, {x = pos.x + side, y = pos.y + tall, z = pos.z + side}, floor)
{"group:soil", "group:sand"})
-- set default grass and decoration -- set default grass and decoration
local grass = green_grass local grass = green_grass
@ -400,19 +418,19 @@ function bonemeal:on_use(pos, strength, node)
default.grow_papyrus(pos, node) default.grow_papyrus(pos, node)
particle_effect(pos) particle_effect(pos)
return return
elseif node.name == "default:cactus" then elseif node.name == "default:cactus" then
default.grow_cactus(pos, node) default.grow_cactus(pos, node)
particle_effect(pos) particle_effect(pos)
return return
end end
-- grow grass and flowers -- grow grass and flowers
if minetest.get_item_group(node.name, "soil") > 0 if minetest.get_item_group(node.name, "soil") > 0
or minetest.get_item_group(node.name, "sand") > 0 then or minetest.get_item_group(node.name, "sand") > 0
or minetest.get_item_group(node.name, "can_bonemeal") > 0 then
check_soil(pos, node.name, strength) check_soil(pos, node.name, strength)
return return
end end
@ -423,8 +441,8 @@ function bonemeal:on_use(pos, strength, node)
end end
-- check for tree growth if pointing at sapling -- check for tree growth if pointing at sapling
if minetest.get_item_group(node.name, "sapling") > 0 -- if minetest.get_item_group(node.name, "sapling") > 0
and math.random(1, (5 - strength)) == 1 then if math.random(1, (5 - strength)) == 1 then
check_sapling(pos, node.name) check_sapling(pos, node.name)
return return
end end

View File

@ -36,6 +36,9 @@ if farming and farming.mod and farming.mod == "redo" then
{"farming:pineapple_", 8}, {"farming:pineapple_", 8},
{"farming:pea_", 5}, {"farming:pea_", 5},
{"farming:beetroot_", 5}, {"farming:beetroot_", 5},
{"farming:rye_", 8},
{"farming:oat_", 8},
{"farming:rice_", 8},
}) })
end end
@ -60,6 +63,7 @@ if minetest.get_modpath("ethereal") then
{"ethereal:orange_tree_sapling", ethereal.grow_orange_tree, "soil"}, {"ethereal:orange_tree_sapling", ethereal.grow_orange_tree, "soil"},
{"ethereal:bamboo_sprout", ethereal.grow_bamboo_tree, "soil"}, {"ethereal:bamboo_sprout", ethereal.grow_bamboo_tree, "soil"},
{"ethereal:birch_sapling", ethereal.grow_birch_tree, "soil"}, {"ethereal:birch_sapling", ethereal.grow_birch_tree, "soil"},
{"ethereal:sakura_sapling", ethereal.grow_sakura_tree, "soil"},
}) })
local grass = {"default:grass_3", "default:grass_4", "default:grass_5", ""} local grass = {"default:grass_3", "default:grass_4", "default:grass_5", ""}
@ -120,3 +124,20 @@ elseif minetest.get_modpath("technic_worldgen") then
{"moretrees:rubber_tree_sapling", technic.rubber_tree_model, "soil"}, {"moretrees:rubber_tree_sapling", technic.rubber_tree_model, "soil"},
}) })
end end
if minetest.get_modpath("caverealms") then
local fil = minetest.get_modpath("caverealms") .. "/schematics/shroom.mts"
local add_shroom = function(pos)
minetest.swap_node(pos, {name = "air"})
minetest.place_schematic(
{x = pos.x - 5, y = pos.y, z = pos.z - 5}, fil, 0, nil, false)
end
bonemeal:add_sapling({
{"caverealms:mushroom_sapling", add_shroom, "soil"},
})
end