1 minetest.override_item("default:dirt", {
2 groups = {crumbly=3, soil=1},
6 wet = "farming:soil_wet"
10 minetest.override_item("default:dirt_with_grass", {
11 groups = {crumbly=3, soil=1},
13 base = "default:dirt_with_grass",
15 wet = "farming:soil_wet"
19 minetest.override_item("default:dirt_with_dry_grass", {
20 groups = {crumbly=3, soil=1},
22 base = "default:dirt_with_dry_grass",
24 wet = "farming:soil_wet"
28 minetest.register_node("farming:soil", {
30 tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"},
31 drop = "default:dirt",
32 groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1},
33 sounds = default.node_sound_dirt_defaults(),
35 base = "default:dirt",
37 wet = "farming:soil_wet"
41 minetest.register_node("farming:soil_wet", {
42 description = "Wet Soil",
43 tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"},
44 drop = "default:dirt",
45 groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1},
46 sounds = default.node_sound_dirt_defaults(),
48 base = "default:dirt",
50 wet = "farming:soil_wet"
54 minetest.override_item("default:desert_sand", {
55 groups = {crumbly=3, falling_node=1, sand=1, soil = 1},
57 base = "default:desert_sand",
58 dry = "farming:desert_sand_soil",
59 wet = "farming:desert_sand_soil_wet"
62 minetest.register_node("farming:desert_sand_soil", {
63 description = "Desert Sand Soil",
64 drop = "default:desert_sand",
65 tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"},
66 groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1},
67 sounds = default.node_sound_sand_defaults(),
69 base = "default:desert_sand",
70 dry = "farming:desert_sand_soil",
71 wet = "farming:desert_sand_soil_wet"
75 minetest.register_node("farming:desert_sand_soil_wet", {
76 description = "Wet Desert Sand Soil",
77 drop = "default:desert_sand",
78 tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"},
79 groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1},
80 sounds = default.node_sound_sand_defaults(),
82 base = "default:desert_sand",
83 dry = "farming:desert_sand_soil",
84 wet = "farming:desert_sand_soil_wet"
88 minetest.register_node("farming:straw", {
89 description = "Straw",
90 tiles = {"farming_straw.png"},
91 is_ground_content = false,
92 groups = {snappy=3, flammable=4, fall_damage_add_percent=-30},
93 sounds = default.node_sound_leaves_defaults(),
96 minetest.register_abm({
97 label = "Farming soil",
98 nodenames = {"group:field"},
101 action = function(pos, node)
102 local n_def = minetest.registered_nodes[node.name] or nil
103 local wet = n_def.soil.wet or nil
104 local base = n_def.soil.base or nil
105 local dry = n_def.soil.dry or nil
106 if not n_def or not n_def.soil or not wet or not base or not dry then
111 local nn = minetest.get_node_or_nil(pos)
112 if not nn or not nn.name then
115 local nn_def = minetest.registered_nodes[nn.name] or nil
118 if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then
119 minetest.set_node(pos, {name = base})
122 -- check if there is water nearby
123 local wet_lvl = minetest.get_item_group(node.name, "wet")
124 if minetest.find_node_near(pos, 3, {"group:water"}) then
125 -- if it is dry soil and not base node, turn it into wet soil
127 minetest.set_node(pos, {name = wet})
130 -- only turn back if there are no unloaded blocks (and therefore
131 -- possible water sources) nearby
132 if not minetest.find_node_near(pos, 3, {"ignore"}) then
133 -- turn it back into base if it is already dry
135 -- only turn it back if there is no plant/seed on top of it
136 if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then
137 minetest.set_node(pos, {name = base})
140 -- if its wet turn it back into dry soil
141 elseif wet_lvl == 1 then
142 minetest.set_node(pos, {name = dry})
151 minetest.override_item("default:grass_"..i, {drop = {
154 {items = {'farming:seed_wheat'},rarity = 5},
155 {items = {'default:grass_1'}},
160 minetest.override_item("default:junglegrass", {drop = {
163 {items = {'farming:seed_cotton'},rarity = 8},
164 {items = {'default:junglegrass'}},