Remove farming soil with footsteps, grow plants on any soil

master
CasimirKaPazi 2022-02-06 20:58:44 +01:00
parent be8ba9b04f
commit 90fa181ddb
6 changed files with 16 additions and 28 deletions

View File

@ -88,9 +88,8 @@ function farming.register_growing(max_stage, stages, interval, chance, lightleve
chance = chance,
action = function(pos, node)
pos.y = pos.y-1
if minetest.get_node(pos).name ~= "farming:soil_wet"
and minetest.get_node(pos).name ~= "farming:soil_wet" then
return
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < math.random(1,3) then
return itemstack
end
pos.y = pos.y+1
if minetest.get_node_light(pos) < lightlevel then
@ -107,7 +106,10 @@ function farming.register_growing(max_stage, stages, interval, chance, lightleve
})
end
-- Functions to compatible with MTG. Not used in this mod.
--
-- Functions to be compatible with MTG. Not used in this mod.
--
farming.registered_plants = {}
-- how often node timers for plants will tick, +/- some random value

View File

@ -33,7 +33,7 @@ minetest.register_node("farming:weed", {
})
minetest.register_abm({
nodenames = {"farming:soil", "farming:soil_wet", "farming:soil_footsteps", "farming:soil_wet_footsteps"},
nodenames = {"farming:soil", "farming:soil_wet"},
interval = 23,
chance = 23,
action = function(pos, node)

View File

@ -1,12 +1,8 @@
-- support for MT game translation.
local S = minetest.get_translator("farming")
local footsteps = {"", "_footsteps"}
for _, f in ipairs(footsteps) do
minetest.register_node("farming:soil"..f, {
tiles = {"default_dirt.png^farming_soil"..f..".png", "default_dirt.png"},
minetest.register_node("farming:soil", {
tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"},
drop = "default:dirt",
groups = {crumbly=2, falling_node=1, soil=2, not_in_creative_inventory=1},
sounds = default.node_sound_dirt_defaults({
@ -14,8 +10,8 @@ minetest.register_node("farming:soil"..f, {
}),
})
minetest.register_node("farming:soil_wet"..f, {
tiles = {"default_dirt.png^farming_soil_wet"..f..".png", "default_dirt.png^farming_soil_wet_side.png"},
minetest.register_node("farming:soil_wet", {
tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"},
drop = "default:dirt",
groups = {crumbly=2, falling_node=1, soil=3, not_in_creative_inventory=1},
sounds = default.node_sound_dirt_defaults({
@ -24,19 +20,19 @@ minetest.register_node("farming:soil_wet"..f, {
})
minetest.register_abm({
nodenames = {"farming:soil"..f..""},
nodenames = {"farming:soil"},
interval = 15,
chance = 5,
action = function(pos, node)
if minetest.find_node_near(pos, 4, {"default:water_source", "default:water_flowing"}) then
node.name = "farming:soil_wet"..f..""
node.name = "farming:soil_wet"
minetest.set_node(pos, node)
end
end,
})
minetest.register_abm({
nodenames = {"farming:soil", "farming:soil_wet", "farming:soil_footsteps", "farming:soil_wet_footsteps"},
nodenames = {"farming:soil", "farming:soil_wet"},
interval = 2,
chance = 20,
action = function(pos, node)
@ -50,5 +46,3 @@ minetest.register_abm({
end
end
})
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 B

View File

@ -60,16 +60,8 @@ minetest.register_globalstep(function(dtime)
or n_ground.name == "default:dirt_with_grass_footsteps" then
minetest.add_node(p_ground,{type="node",name="default:dirt_with_grass_footsteps"})
minetest.get_node_timer(p_ground):start(math.random(3, 48))
elseif n_ground.name == "farming:soil" then
minetest.add_node(p_ground,{type="node",name="farming:soil_footsteps"})
minetest.sound_play("default_dig_crumbly",
{pos = pos, max_hear_distance = 16, gain = 0.25})
elseif n_ground.name == "farming:soil_wet" then
minetest.add_node(p_ground,{type="node",name="farming:soil_wet_footsteps"})
minetest.sound_play("default_dig_crumbly",
{pos = pos, max_hear_distance = 16, gain = 0.25})
elseif n_ground.name == "farming:soil_footsteps"
or n_ground.name == "farming:soil_wet_footsteps" then
elseif n_ground.name == "farming:soil"
or n_ground.name == "farming:soil_wet" then
minetest.add_node(p_ground,{type="node",name="default:dirt"})
minetest.sound_play("default_dig_crumbly",
{pos = pos, max_hear_distance = 16, gain = 0.25})