forked from mtcontrib/plantlife_modpack
		
	read-out/play back more log entries per globalstep
if there is time to do so (up to a max of 0.2 seconds' worth)
This commit is contained in:
		@@ -325,8 +325,7 @@ end
 | 
				
			|||||||
-- Primary mapgen spawner, for mods that can work with air checking enabled on
 | 
					-- Primary mapgen spawner, for mods that can work with air checking enabled on
 | 
				
			||||||
-- a surface during the initial map read stage.
 | 
					-- a surface during the initial map read stage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function plantslib:generate_block_with_air_checking(dtime)
 | 
					function plantslib:generate_block_with_air_checking()
 | 
				
			||||||
	if dtime > 0.2 then return end -- don't attempt to populate if lag is too high
 | 
					 | 
				
			||||||
	if #plantslib.blocklist_aircheck > 0 then
 | 
						if #plantslib.blocklist_aircheck > 0 then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local minp =		plantslib.blocklist_aircheck[1][1]
 | 
							local minp =		plantslib.blocklist_aircheck[1][1]
 | 
				
			||||||
@@ -380,8 +379,7 @@ end
 | 
				
			|||||||
-- Secondary mapgen spawner, for mods that require disabling of
 | 
					-- Secondary mapgen spawner, for mods that require disabling of
 | 
				
			||||||
-- checking for air during the initial map read stage.
 | 
					-- checking for air during the initial map read stage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function plantslib:generate_block_no_aircheck(dtime)
 | 
					function plantslib:generate_block_no_aircheck()
 | 
				
			||||||
	if dtime > 0.2 then return end
 | 
					 | 
				
			||||||
	if #plantslib.blocklist_no_aircheck > 0 then
 | 
						if #plantslib.blocklist_no_aircheck > 0 then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		local minp =		plantslib.blocklist_no_aircheck[1][1]
 | 
							local minp =		plantslib.blocklist_no_aircheck[1][1]
 | 
				
			||||||
@@ -427,11 +425,19 @@ end)
 | 
				
			|||||||
-- "Play" them back, populating them with new stuff in the process
 | 
					-- "Play" them back, populating them with new stuff in the process
 | 
				
			||||||
 | 
					
 | 
				
			||||||
minetest.register_globalstep(function(dtime)
 | 
					minetest.register_globalstep(function(dtime)
 | 
				
			||||||
	plantslib:generate_block_with_air_checking(dtime)
 | 
						if dtime < 0.2 then  -- don't attempt to populate if lag is already too high
 | 
				
			||||||
end)
 | 
							plantslib.globalstep_start_time = minetest.get_us_time()
 | 
				
			||||||
 | 
							plantslib.globalstep_runtime = 0
 | 
				
			||||||
minetest.register_globalstep(function(dtime)
 | 
							while plantslib.globalstep_runtime < 200000 do  -- 0.2 seconds, in uS.
 | 
				
			||||||
	plantslib:generate_block_no_aircheck(dtime)
 | 
								if #plantslib.blocklist_aircheck > 0 then
 | 
				
			||||||
 | 
									plantslib:generate_block_with_air_checking()
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
								if #plantslib.blocklist_no_aircheck > 0 then 
 | 
				
			||||||
 | 
									plantslib:generate_block_no_aircheck()
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
								plantslib.globalstep_runtime = minetest.get_us_time() - plantslib.globalstep_start_time
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
end)
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Play out the entire log all at once on shutdown
 | 
					-- Play out the entire log all at once on shutdown
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user