Use the group "soil" for nodes that saplings grow on

This commit is contained in:
ShadowNinja 2013-04-14 03:01:27 -04:00 committed by PilzAdam
parent 981c6c9bf2
commit 127c488355
3 changed files with 7 additions and 11 deletions

@ -510,7 +510,7 @@ Usage:
- Groups are stored in a table, having the group names with keys and the - Groups are stored in a table, having the group names with keys and the
group ratings as values. For example: group ratings as values. For example:
groups = {crumbly=3, soil=1} 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} groups = {crumbly=2, soil=1, level=2, outerspace=1}
^ A more special dirt-kind of thing ^ A more special dirt-kind of thing
- Groups always have a rating associated with them. If there is no - 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 - 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 dropped as an item. If the node is wallmounted the
wallmounted direction is checked. wallmounted direction is checked.
- soil: saplings will grow on nodes in this group
Known damage and digging time defining groups Known damage and digging time defining groups
---------------------------------------------- ----------------------------------------------

@ -741,7 +741,7 @@ minetest.register_node("default:dirt_with_grass", {
description = "Dirt with grass", description = "Dirt with grass",
tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3, soil=1},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4}, 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", description = "Dirt with grass and footsteps",
tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3, soil=1},
drop = 'default:dirt', drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = {name="default_grass_footstep", gain=0.4}, footstep = {name="default_grass_footstep", gain=0.4},
@ -763,7 +763,7 @@ minetest.register_node("default:dirt", {
description = "Dirt", description = "Dirt",
tiles ={"default_dirt.png"}, tiles ={"default_dirt.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3, soil=1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
}) })

@ -99,14 +99,10 @@ class MakeTreesFromSaplingsABM : public ActiveBlockModifier
{ {
private: private:
content_t c_junglesapling; content_t c_junglesapling;
content_t c_dirt;
content_t c_dirt_with_grass;
public: public:
MakeTreesFromSaplingsABM(ServerEnvironment *env, INodeDefManager *nodemgr) { MakeTreesFromSaplingsABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
c_junglesapling = nodemgr->getId("junglesapling"); c_junglesapling = nodemgr->getId("junglesapling");
c_dirt = nodemgr->getId("mapgen_dirt");
c_dirt_with_grass = nodemgr->getId("mapgen_dirt_with_grass");
} }
virtual std::set<std::string> getTriggerContents() virtual std::set<std::string> getTriggerContents()
@ -127,8 +123,7 @@ public:
ServerMap *map = &env->getServerMap(); ServerMap *map = &env->getServerMap();
MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0)); MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0));
if (n_below.getContent() != c_dirt && if (!((ItemGroupList) ndef->get(n_below).groups)["soil"])
n_below.getContent() != c_dirt_with_grass)
return; return;
bool is_jungle_tree = n.getContent() == c_junglesapling; bool is_jungle_tree = n.getContent() == c_junglesapling;