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.register_node("farming:soil", {
21 tiles = {"farming_soil.png", "default_dirt.png"},
22 drop = "default:dirt",
23 is_ground_content = true,
24 groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1},
25 sounds = default.node_sound_dirt_defaults(),
27 base = "default:dirt",
29 wet = "farming:soil_wet"
33 minetest.register_node("farming:soil_wet", {
34 description = "Wet Soil",
35 tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"},
36 drop = "default:dirt",
37 is_ground_content = true,
38 groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1},
39 sounds = default.node_sound_dirt_defaults(),
41 base = "default:dirt",
43 wet = "farming:soil_wet"
47 minetest.override_item("default:desert_sand", {
48 groups = {crumbly=3, falling_node=1, sand=1, soil = 1},
50 base = "default:desert_sand",
51 dry = "farming:desert_sand_soil",
52 wet = "farming:desert_sand_soil_wet"
55 minetest.register_node("farming:desert_sand_soil", {
56 description = "Desert Sand",
57 tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"},
58 is_ground_content = true,
59 groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1},
60 sounds = default.node_sound_sand_defaults(),
62 base = "default:desert_sand",
63 dry = "farming:desert_sand_soil",
64 wet = "farming:desert_sand_soil_wet"
68 minetest.register_node("farming:desert_sand_soil_wet", {
69 description = "Desert Sand",
70 drop = "default:desert_sand",
71 tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"},
72 is_ground_content = true,
73 groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1},
74 sounds = default.node_sound_sand_defaults(),
76 base = "default:desert_sand",
77 dry = "farming:desert_sand_soil",
78 wet = "farming:desert_sand_soil_wet"
82 minetest.register_abm({
83 nodenames = {"group:soil", "group:wet"},
86 action = function(pos, node)
88 local nn = minetest.get_node(pos).name
89 node = minetest.registered_nodes[node.name]
92 if node.soil == nil or node.soil.wet == nil or node.soil.base == nil or node.soil.dry == nil then
93 minetest.log("error", "Could not process soil information of node " .. nn)
97 if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].walkable and minetest.get_item_group(nn, "plant") == 0 and node.name ~= node.soil.base then
98 minetest.set_node(pos, {name = node.soil.base})
100 -- check if there is water nearby
101 if minetest.find_node_near(pos, 3, {"group:water"}) then
102 -- if it is dry soil and not base node, turn it into wet soil
103 if node.name ~= node.soil.base and minetest.get_item_group(node.name, "wet") == 0 then
104 minetest.set_node(pos, {name = node.soil.wet})
107 -- turn it back into base if it is already dry
108 if minetest.get_item_group(node.name, "wet") == 0 then
109 -- only turn it back if there is no plant/seed on top of it
110 if minetest.get_item_group(nn, "plant") == 0 and minetest.get_item_group(nn, "seed") == 0 then
111 minetest.set_node(pos, {name = node.soil.base})
114 -- if its wet turn it back into dry soil
115 elseif minetest.get_item_group(node.name, "wet") == 1 then
116 minetest.set_node(pos, {name = node.soil.dry})
124 minetest.override_item("default:grass_"..i, {drop = {
127 {items = {'farming:seed_wheat'},rarity = 5},
128 {items = {'default:grass_1'}},
133 minetest.override_item("default:junglegrass", {drop = {
136 {items = {'farming:seed_cotton'},rarity = 8},
137 {items = {'default:junglegrass'}},