summaryrefslogtreecommitdiff
path: root/woodsoils/generating.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-04-01 21:00:20 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2016-04-01 21:10:04 -0400
commit888b0ebfec8c2eff9015163549a7e47443cb8665 (patch)
tree915080159bfaa6ba6e226087c7ce0e8d5464b518 /woodsoils/generating.lua
parentda66780a569712c23ae4f2996cfb4608a9f9d69d (diff)
downloaddreambuilder_modpack-888b0ebfec8c2eff9015163549a7e47443cb8665.tar
dreambuilder_modpack-888b0ebfec8c2eff9015163549a7e47443cb8665.tar.gz
dreambuilder_modpack-888b0ebfec8c2eff9015163549a7e47443cb8665.tar.bz2
dreambuilder_modpack-888b0ebfec8c2eff9015163549a7e47443cb8665.tar.xz
dreambuilder_modpack-888b0ebfec8c2eff9015163549a7e47443cb8665.zip
"explode" all modpacks into their individual components
(you can't have a modpack buried inside a modpack)
Diffstat (limited to 'woodsoils/generating.lua')
-rw-r--r--woodsoils/generating.lua151
1 files changed, 151 insertions, 0 deletions
diff --git a/woodsoils/generating.lua b/woodsoils/generating.lua
new file mode 100644
index 0000000..1d03ed7
--- /dev/null
+++ b/woodsoils/generating.lua
@@ -0,0 +1,151 @@
+-- generating of forest soils
+
+local RaDiuS = {
+-- WE1 NS1 WE2 NS2 WE3 NS3
+ {-1,-2, -2,-2, -2,-3},
+ { 0,-2, -3,-1, -3,-2},
+ { 1,-2, -3, 0, -4,-1},
+ {-2,-1, -3, 1, -4, 0},
+ {-1,-1, -2, 2, -4, 1},
+ { 0,-1, -1, 3, -3, 2},
+ { 1,-1, 0, 3, -2, 3},
+ { 2,-1, 1, 3, -1, 4},
+ {-2, 0, 2, 2, 0, 4},
+ {-1, 0, 3, 1, 1, 4},
+ { 0, 0, 3, 0, 2, 3},
+ { 1, 0, 3,-1, 3, 2},
+ { 2, 0, 2,-2, 4, 1},
+ {-2, 1, 1,-3, 4, 0},
+ {-1, 1, 0,-3, 4,-1},
+ { 0, 1, -1,-3, 3,-2},
+ { 1, 1, 0, 0, 2,-3},
+ { 2, 1, 0, 0, 1,-4},
+ {-1, 2, 0, 0, 0,-4},
+ { 0, 2, 0, 0, -1,-4},
+ { 1, 2, 0, 0, 0, 0},
+}
+-- e = + , n = +
+abstract_woodsoils.place_soil = function(pos)
+
+ if minetest.get_item_group(minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name, "soil") > 0
+ or minetest.get_item_group(minetest.get_node({x=pos.x,y=pos.y-2,z=pos.z}).name, "soil") > 0 then
+ for i in pairs(RaDiuS) do
+ local WE1 = RaDiuS[i][1]
+ local NS1 = RaDiuS[i][2]
+ local WE2 = RaDiuS[i][3]
+ local NS2 = RaDiuS[i][4]
+ local WE3 = RaDiuS[i][5]
+ local NS3 = RaDiuS[i][6]
+ local radius_1a = {x=pos.x+WE1,y=pos.y-1,z=pos.z+NS1}
+ local radius_1b = {x=pos.x+WE1,y=pos.y-2,z=pos.z+NS1}
+ local radius_2a = {x=pos.x+WE2,y=pos.y-1,z=pos.z+NS2}
+ local radius_2b = {x=pos.x+WE2,y=pos.y-2,z=pos.z+NS2}
+ local radius_3a = {x=pos.x+WE3,y=pos.y-1,z=pos.z+NS3}
+ local radius_3b = {x=pos.x+WE3,y=pos.y-2,z=pos.z+NS3}
+ --local node_1a = minetest.get_node(radius_1a)
+ --local node_1b = minetest.get_node(radius_1b)
+ local node_2a = minetest.get_node(radius_2a)
+ local node_2b = minetest.get_node(radius_2b)
+ local node_3a = minetest.get_node(radius_3a)
+ local node_3b = minetest.get_node(radius_3b)
+ -- Dirt with Leaves 1
+ if minetest.get_item_group(minetest.get_node(radius_1a).name, "soil") > 0 then
+ minetest.set_node(radius_1a, {name="woodsoils:dirt_with_leaves_1"})
+ end
+ if minetest.get_item_group(minetest.get_node(radius_1b).name, "soil") > 0 then
+ minetest.set_node(radius_1b, {name="woodsoils:dirt_with_leaves_1"})
+ end
+ -- Grass with Leaves 2
+ if string.find(node_2a.name, "dirt_with_grass") then
+ minetest.set_node(radius_2a, {name="woodsoils:grass_with_leaves_2"})
+ end
+ if string.find(node_2b.name, "dirt_with_grass") then
+ minetest.set_node(radius_2b, {name="woodsoils:grass_with_leaves_2"})
+ end
+ -- Grass with Leaves 1
+ if string.find(node_3a.name, "dirt_with_grass") then
+ minetest.set_node(radius_3a, {name="woodsoils:grass_with_leaves_1"})
+ end
+ if string.find(node_3b.name, "dirt_with_grass") then
+ minetest.set_node(radius_3b, {name="woodsoils:grass_with_leaves_1"})
+ end
+ end
+ end
+end
+
+biome_lib:register_generate_plant({
+ surface = {
+ "group:tree",
+ "ferns:fern_03",
+ "ferns:fern_02",
+ "ferns:fern_01"
+ },
+ max_count = 1000,
+ rarity = 1,
+ min_elevation = 1,
+ max_elevation = 40,
+ near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
+ near_nodes_size = 5,
+ near_nodes_vertical = 1,
+ near_nodes_count = 4,
+ plantlife_limit = -1,
+ check_air = false,
+ },
+ "abstract_woodsoils.place_soil"
+)
+
+biome_lib:register_generate_plant({
+ surface = {
+ "moretrees:apple_tree_sapling_ongen",
+ "moretrees:beech_sapling_ongen",
+ "moretrees:birch_sapling_ongen",
+ "moretrees:fir_sapling_ongen",
+ "moretrees:jungletree_sapling_ongen",
+ "moretrees:oak_sapling_ongen",
+ "moretrees:palm_sapling_ongen",
+ "moretrees:rubber_tree_sapling_ongen",
+ "moretrees:sequoia_sapling_ongen",
+ "moretrees:spruce_sapling_ongen",
+ "moretrees:willow_sapling_ongen"
+ },
+ max_count = 1000,
+ rarity = 2,
+ min_elevation = 1,
+ max_elevation = 40,
+ plantlife_limit = -0.9,
+ check_air = false,
+ },
+ "abstract_woodsoils.place_soil"
+)
+
+minetest.register_abm({
+ nodenames = {"default:papyrus"},
+ neighbors = {
+ "woodsoils:dirt_with_leaves_1",
+ "woodsoils:dirt_with_leaves_2",
+ "woodsoils:grass_with_leaves_1",
+ "woodsoils:grass_with_leaves_2"
+ },
+ interval = 50,
+ chance = 20,
+ action = function(pos, node)
+ pos.y = pos.y-1
+ local name = minetest.get_node(pos).name
+ if string.find(name, "_with_leaves_") then
+ if minetest.find_node_near(pos, 3, {"group:water"}) == nil then
+ return
+ end
+ pos.y = pos.y+1
+ local height = 0
+ while minetest.get_node(pos).name == "default:papyrus" and height < 4 do
+ height = height+1
+ pos.y = pos.y+1
+ end
+ if height < 4 then
+ if minetest.get_node(pos).name == "air" then
+ minetest.set_node(pos, {name="default:papyrus"})
+ end
+ end
+ end
+ end,
+})