australia/saplings.lua

137 lines
5.2 KiB
Lua

--
-- Grow trees from saplings
--
-- list of all saplings
aus.saplings = {
{sapling="australia:black_box_sapling",
schematics=aus.schematics.black_box_tree},
{sapling="australia:black_wattle_sapling",
schematics=aus.schematics.black_wattle_tree},
{sapling="australia:blue_gum_sapling",
schematics=aus.schematics.blue_gum_tree},
{sapling="australia:boab_sapling",
schematics=aus.schematics.boab_tree},
{sapling="australia:bull_banksia_sapling",
schematics=aus.schematics.bull_banksia_tree},
{sapling="australia:celery_top_pine_sapling",
schematics=aus.schematics.celery_top_pine_tree},
{sapling="australia:cherry_sapling",
schematics=aus.schematics.cherry_tree},
{sapling="australia:cloncurry_box_sapling",
schematics=aus.schematics.cloncurry_box_tree},
{sapling="australia:coast_banksia_sapling",
schematics=aus.schematics.coast_banksia_big_tree},
{sapling="australia:coolabah_sapling",
schematics=aus.schematics.coolabah_tree},
{sapling="australia:daintree_stringybark_sapling",
schematics=aus.schematics.daintree_stringybark_tree},
{sapling="australia:darwin_woollybutt_sapling",
schematics=aus.schematics.darwin_woollybutt_tree},
{sapling="australia:desert_oak_sapling",
schematics=aus.schematics.desert_oak_tree},
{sapling="australia:fan_palm_sapling",
schematics=aus.schematics.fan_palm_tree},
{sapling="australia:golden_wattle_sapling",
schematics=aus.schematics.golden_wattle_tree},
{sapling="australia:grey_mangrove_sapling",
schematics=aus.schematics.grey_mangrove_tree},
{sapling="australia:huon_pine_sapling",
schematics=aus.schematics.huon_pine_tree},
{sapling="australia:illawarra_flame_sapling",
schematics=aus.schematics.illawarra_flame_tree},
{sapling="australia:jarrah_sapling",
schematics=aus.schematics.jarrah_tree},
{sapling="australia:karri_sapling",
schematics=aus.schematics.karri_tree},
{sapling="australia:lemon_eucalyptus_sapling",
schematics=aus.schematics.lemon_eucalyptus_tree},
{sapling="australia:lemon_myrtle_sapling",
schematics=aus.schematics.lemon_myrtle_tree},
{sapling="australia:lilly_pilly_sapling",
schematics=aus.schematics.lilly_pilly_tree},
{sapling="australia:macadamia_sapling",
schematics=aus.schematics.macadamia_tree},
{sapling="australia:mangrove_apple_sapling",
schematics=aus.schematics.mangrove_apple_tree},
{sapling="australia:marri_sapling",
schematics=aus.schematics.marri_tree},
{sapling="australia:merbau_sapling",
schematics=aus.schematics.merbau_tree},
{sapling="australia:moreton_bay_fig_sapling",
schematics=aus.schematics.moreton_bay_fig_tree},
{sapling="australia:mulga_sapling",
schematics=aus.schematics.mulga_tree},
{sapling="australia:paperbark_sapling",
schematics=aus.schematics.paperbark_tree},
{sapling="australia:quandong_sapling",
schematics=aus.schematics.quandong_tree},
{sapling="australia:red_bottlebrush_sapling",
schematics=aus.schematics.red_bottlebrush_tree},
{sapling="australia:river_oak_sapling",
schematics=aus.schematics.river_oak_tree},
{sapling="australia:river_red_gum_sapling",
schematics=aus.schematics.river_red_gum_tree},
{sapling="australia:rottnest_island_pine_sapling",
schematics=aus.schematics.rottnest_island_pine_tree},
{sapling="australia:scribbly_gum_sapling",
schematics=aus.schematics.scribbly_gum_tree},
{sapling="australia:shoestring_acacia_sapling",
schematics=aus.schematics.shoestring_acacia_tree},
{sapling="australia:snow_gum_sapling",
schematics=aus.schematics.snow_gum_tree},
{sapling="australia:southern_sassafras_sapling",
schematics=aus.schematics.southern_sassafras_tree},
{sapling="australia:stilted_mangrove_sapling",
schematics=aus.schematics.stilted_mangrove_tree},
{sapling="australia:sugar_gum_sapling",
schematics=aus.schematics.sugar_gum_tree},
{sapling="australia:swamp_bloodwood_sapling",
schematics=aus.schematics.swamp_bloodwood_tree},
{sapling="australia:swamp_gum_sapling",
schematics=aus.schematics.swamp_gum_tree},
{sapling="australia:swamp_paperbark_sapling",
schematics=aus.schematics.swamp_paperbark_tree},
{sapling="australia:tasmanian_myrtle_sapling",
schematics=aus.schematics.tasmanian_myrtle_tree},
{sapling="australia:tea_tree_sapling",
schematics=aus.schematics.tea_tree_tree},
{sapling="australia:white_box_sapling",
schematics=aus.schematics.white_box_tree},
{sapling="australia:wirewood_sapling",
schematics=aus.schematics.wirewood_tree},
}
-- create a list of just the node names
local sapling_list = {}
for _, sap in pairs(aus.saplings) do
push(sapling_list, sap.sapling)
end
-- This abm can handle all saplings.
minetest.register_abm({
nodenames = sapling_list,
interval = 10,
chance = 50,
action = function(pos, node)
local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z})
if not node_under or
minetest.get_item_group(node_under.name, "soil") == 0 then
return
end
for _, sap in pairs(aus.saplings) do
if node.name == sap.sapling then
minetest.log("action", "A sapling grows into a tree at "..
minetest.pos_to_string(pos))
local schem = sap.schematics[math.random(1,#sap.schematics)]
local adj = {x = pos.x - math.floor(schem.size.x / 2),
y = pos.y - 1,
z = pos.z - math.floor(schem.size.z / 2)}
minetest.place_schematic(adj, schem, 'random', nil, true)
break
end
end
end,
})