aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowNinja <noreply@gmail.com>2013-04-14 03:01:27 -0400
committerPilzAdam <pilzadam@minetest.net>2013-05-20 13:43:13 +0200
commit127c48835573f9e7bd89137ecb2176c2a8e5f783 (patch)
tree8964b12dfd2079d2525e6860e4c659dc3fd592e1
parent981c6c9bf249f15945ca63c34d78d8c5a81ce469 (diff)
downloadminetest-127c48835573f9e7bd89137ecb2176c2a8e5f783.tar.gz
minetest-127c48835573f9e7bd89137ecb2176c2a8e5f783.tar.bz2
minetest-127c48835573f9e7bd89137ecb2176c2a8e5f783.zip
Use the group "soil" for nodes that saplings grow on
-rw-r--r--doc/lua_api.txt3
-rw-r--r--games/minimal/mods/default/init.lua6
-rw-r--r--src/content_abm.cpp9
3 files changed, 7 insertions, 11 deletions
diff --git a/doc/lua_api.txt b/doc/lua_api.txt
index b7be50206..e2abcbfe7 100644
--- a/doc/lua_api.txt
+++ b/doc/lua_api.txt
@@ -510,7 +510,7 @@ Usage:
- Groups are stored in a table, having the group names with keys and the
group ratings as values. For example:
groups = {crumbly=3, soil=1}
- ^ Default dirt (soil group actually currently not defined; TODO)
+ ^ Default dirt
groups = {crumbly=2, soil=1, level=2, outerspace=1}
^ A more special dirt-kind of thing
- Groups always have a rating associated with them. If there is no
@@ -583,6 +583,7 @@ Special groups
- attached_node: if the node under it is not a walkable block the node will be
dropped as an item. If the node is wallmounted the
wallmounted direction is checked.
+- soil: saplings will grow on nodes in this group
Known damage and digging time defining groups
----------------------------------------------
diff --git a/games/minimal/mods/default/init.lua b/games/minimal/mods/default/init.lua
index d8067d211..b375cda1e 100644
--- a/games/minimal/mods/default/init.lua
+++ b/games/minimal/mods/default/init.lua
@@ -741,7 +741,7 @@ minetest.register_node("default:dirt_with_grass", {
description = "Dirt with grass",
tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
is_ground_content = true,
- groups = {crumbly=3},
+ groups = {crumbly=3, soil=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
@@ -752,7 +752,7 @@ minetest.register_node("default:dirt_with_grass_footsteps", {
description = "Dirt with grass and footsteps",
tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
is_ground_content = true,
- groups = {crumbly=3},
+ groups = {crumbly=3, soil=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4},
@@ -763,7 +763,7 @@ minetest.register_node("default:dirt", {
description = "Dirt",
tiles ={"default_dirt.png"},
is_ground_content = true,
- groups = {crumbly=3},
+ groups = {crumbly=3, soil=1},
sounds = default.node_sound_dirt_defaults(),
})
diff --git a/src/content_abm.cpp b/src/content_abm.cpp
index e20201dcf..f19caf74e 100644
--- a/src/content_abm.cpp
+++ b/src/content_abm.cpp
@@ -99,14 +99,10 @@ class MakeTreesFromSaplingsABM : public ActiveBlockModifier
{
private:
content_t c_junglesapling;
- content_t c_dirt;
- content_t c_dirt_with_grass;
public:
MakeTreesFromSaplingsABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
- c_junglesapling = nodemgr->getId("junglesapling");
- c_dirt = nodemgr->getId("mapgen_dirt");
- c_dirt_with_grass = nodemgr->getId("mapgen_dirt_with_grass");
+ c_junglesapling = nodemgr->getId("junglesapling");
}
virtual std::set<std::string> getTriggerContents()
@@ -127,8 +123,7 @@ public:
ServerMap *map = &env->getServerMap();
MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0));
- if (n_below.getContent() != c_dirt &&
- n_below.getContent() != c_dirt_with_grass)
+ if (!((ItemGroupList) ndef->get(n_below).groups)["soil"])
return;
bool is_jungle_tree = n.getContent() == c_junglesapling;