3 -- support for MT game translation.
4 local S = farming.get_translator
6 minetest.override_item("default:dirt", {
10 wet = "farming:soil_wet"
14 minetest.override_item("default:dirt_with_grass", {
16 base = "default:dirt_with_grass",
18 wet = "farming:soil_wet"
22 minetest.override_item("default:dirt_with_dry_grass", {
24 base = "default:dirt_with_dry_grass",
26 wet = "farming:soil_wet"
30 minetest.override_item("default:dirt_with_rainforest_litter", {
32 base = "default:dirt_with_rainforest_litter",
34 wet = "farming:soil_wet"
38 minetest.override_item("default:dirt_with_coniferous_litter", {
40 base = "default:dirt_with_coniferous_litter",
42 wet = "farming:soil_wet"
46 minetest.override_item("default:dry_dirt", {
48 base = "default:dry_dirt",
49 dry = "farming:dry_soil",
50 wet = "farming:dry_soil_wet"
54 minetest.override_item("default:dry_dirt_with_dry_grass", {
56 base = "default:dry_dirt_with_dry_grass",
57 dry = "farming:dry_soil",
58 wet = "farming:dry_soil_wet"
62 minetest.register_node("farming:soil", {
63 description = S("Soil"),
64 tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"},
65 drop = "default:dirt",
66 groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1},
67 sounds = default.node_sound_dirt_defaults(),
69 base = "default:dirt",
71 wet = "farming:soil_wet"
75 minetest.register_node("farming:soil_wet", {
76 description = S("Wet Soil"),
77 tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"},
78 drop = "default:dirt",
79 groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1},
80 sounds = default.node_sound_dirt_defaults(),
82 base = "default:dirt",
84 wet = "farming:soil_wet"
88 minetest.register_node("farming:dry_soil", {
89 description = S("Dry Soil"),
90 tiles = {"default_dry_dirt.png^farming_soil.png", "default_dry_dirt.png"},
91 drop = "default:dry_dirt",
92 groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1},
93 sounds = default.node_sound_dirt_defaults(),
95 base = "default:dry_dirt",
96 dry = "farming:dry_soil",
97 wet = "farming:dry_soil_wet"
101 minetest.register_node("farming:dry_soil_wet", {
102 description = S("Wet Dry Soil"),
103 tiles = {"default_dry_dirt.png^farming_soil_wet.png", "default_dry_dirt.png^farming_soil_wet_side.png"},
104 drop = "default:dry_dirt",
105 groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1},
106 sounds = default.node_sound_dirt_defaults(),
108 base = "default:dry_dirt",
109 dry = "farming:dry_soil",
110 wet = "farming:dry_soil_wet"
114 minetest.override_item("default:desert_sand", {
115 groups = {crumbly=3, falling_node=1, sand=1, soil = 1},
117 base = "default:desert_sand",
118 dry = "farming:desert_sand_soil",
119 wet = "farming:desert_sand_soil_wet"
122 minetest.register_node("farming:desert_sand_soil", {
123 description = S("Desert Sand Soil"),
124 drop = "default:desert_sand",
125 tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"},
126 groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1},
127 sounds = default.node_sound_sand_defaults(),
129 base = "default:desert_sand",
130 dry = "farming:desert_sand_soil",
131 wet = "farming:desert_sand_soil_wet"
135 minetest.register_node("farming:desert_sand_soil_wet", {
136 description = S("Wet Desert Sand Soil"),
137 drop = "default:desert_sand",
138 tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"},
139 groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1},
140 sounds = default.node_sound_sand_defaults(),
142 base = "default:desert_sand",
143 dry = "farming:desert_sand_soil",
144 wet = "farming:desert_sand_soil_wet"
148 minetest.register_node("farming:straw", {
149 description = S("Straw"),
150 tiles = {"farming_straw.png"},
151 is_ground_content = false,
152 groups = {snappy=3, flammable=4, fall_damage_add_percent=-30},
153 sounds = default.node_sound_leaves_defaults(),
157 local recipe = "farming:straw"
158 local groups = {snappy = 3, flammable = 4}
159 local images = {"farming_straw.png"}
160 local sounds = default.node_sound_leaves_defaults()
162 stairs.register_stair("straw", recipe, groups, images, S("Straw Stair"),
164 stairs.register_stair_inner("straw", recipe, groups, images, "",
165 sounds, true, S("Inner Straw Stair"))
166 stairs.register_stair_outer("straw", recipe, groups, images, "",
167 sounds, true, S("Outer Straw Stair"))
168 stairs.register_slab("straw", recipe, groups, images, S("Straw Slab"),
172 minetest.register_abm({
173 label = "Farming soil",
174 nodenames = {"group:field"},
177 action = function(pos, node)
178 local n_def = minetest.registered_nodes[node.name] or nil
179 local wet = n_def.soil.wet or nil
180 local base = n_def.soil.base or nil
181 local dry = n_def.soil.dry or nil
182 if not n_def or not n_def.soil or not wet or not base or not dry then
187 local nn = minetest.get_node_or_nil(pos)
188 if not nn or not nn.name then
191 local nn_def = minetest.registered_nodes[nn.name] or nil
194 if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then
195 minetest.set_node(pos, {name = base})
198 -- check if there is water nearby
199 local wet_lvl = minetest.get_item_group(node.name, "wet")
200 if minetest.find_node_near(pos, 3, {"group:water"}) then
201 -- if it is dry soil and not base node, turn it into wet soil
203 minetest.set_node(pos, {name = wet})
206 -- only turn back if there are no unloaded blocks (and therefore
207 -- possible water sources) nearby
208 if not minetest.find_node_near(pos, 3, {"ignore"}) then
209 -- turn it back into base if it is already dry
211 -- only turn it back if there is no plant/seed on top of it
212 if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then
213 minetest.set_node(pos, {name = base})
216 -- if its wet turn it back into dry soil
217 elseif wet_lvl == 1 then
218 minetest.set_node(pos, {name = dry})
227 minetest.override_item("default:grass_"..i, {drop = {
230 {items = {"farming:seed_wheat"},rarity = 5},
231 {items = {"default:grass_1"}},
236 minetest.override_item("default:junglegrass", {drop = {
239 {items = {"farming:seed_cotton"},rarity = 8},
240 {items = {"default:junglegrass"}},