mirror of
				https://github.com/luanti-org/minetest_game.git
				synced 2025-11-04 01:05:49 +01:00 
			
		
		
		
	Saplings: Reduce grow time to ABM equivalent
Previous times were chosen using statistical maths, but reports suggested this was too long. I tested by timing an ABM acting on 100 nodes, with interval and chance equal to the old sapling ABM. 50 at 4m59s. 99 at 24m58s. 100 at 26m58s. So choose a grow time between 5 and 25 min for tree and bush saplings. If 'can grow' is false at grow time the timer is reset to 5 min.
This commit is contained in:
		@@ -608,7 +608,7 @@ minetest.register_node("default:sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(2400,4800))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -742,7 +742,7 @@ minetest.register_node("default:junglesapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(2400,4800))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -821,7 +821,7 @@ minetest.register_node("default:pine_sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(2400,4800))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -901,7 +901,7 @@ minetest.register_node("default:acacia_sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(2400,4800))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -979,7 +979,7 @@ minetest.register_node("default:aspen_sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(2400,4800))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -1362,7 +1362,7 @@ minetest.register_node("default:bush_sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(1200, 2400))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
@@ -1433,7 +1433,7 @@ minetest.register_node("default:acacia_bush_sapling", {
 | 
			
		||||
	sounds = default.node_sound_leaves_defaults(),
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(1200, 2400))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_place = function(itemstack, placer, pointed_thing)
 | 
			
		||||
 
 | 
			
		||||
@@ -31,12 +31,12 @@ local function is_snow_nearby(pos)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Sapling ABM
 | 
			
		||||
-- Grow sapling
 | 
			
		||||
 | 
			
		||||
function default.grow_sapling(pos)
 | 
			
		||||
	if not default.can_grow(pos) then
 | 
			
		||||
		-- try a bit later again
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(240, 600))
 | 
			
		||||
		-- try again 5 min later
 | 
			
		||||
		minetest.get_node_timer(pos):start(300)
 | 
			
		||||
		return
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
@@ -94,7 +94,7 @@ minetest.register_lbm({
 | 
			
		||||
			"default:pine_sapling", "default:acacia_sapling",
 | 
			
		||||
			"default:aspen_sapling"},
 | 
			
		||||
	action = function(pos)
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(1200, 2400))
 | 
			
		||||
		minetest.get_node_timer(pos):start(math.random(300, 1500))
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user