mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2025-01-01 14:17:29 +01:00
Add faster bypass when no block updates have occurred
This commit is contained in:
parent
52848727e9
commit
73b928e32e
@ -6,6 +6,7 @@ vl_block_update = mod
|
|||||||
local PROFILE = false
|
local PROFILE = false
|
||||||
local lookaside_cache = {}
|
local lookaside_cache = {}
|
||||||
local pending_block_updates = {}
|
local pending_block_updates = {}
|
||||||
|
local has_block_updates = false
|
||||||
|
|
||||||
-- Block updates are processed on the next timestep
|
-- Block updates are processed on the next timestep
|
||||||
-- This is written to consolidate multiple updates to the same position
|
-- This is written to consolidate multiple updates to the same position
|
||||||
@ -13,6 +14,7 @@ local function queue_block_updates(pos)
|
|||||||
pos = vector.round(pos)
|
pos = vector.round(pos)
|
||||||
local pos_hash = core.hash_node_position(pos)
|
local pos_hash = core.hash_node_position(pos)
|
||||||
vl_block_update.updated[pos_hash] = true
|
vl_block_update.updated[pos_hash] = true
|
||||||
|
has_block_updates = true
|
||||||
lookaside_cache[pos_hash] = nil
|
lookaside_cache[pos_hash] = nil
|
||||||
<<<
|
<<<
|
||||||
local block_update_pattern = {
|
local block_update_pattern = {
|
||||||
@ -52,9 +54,12 @@ local function queue_block_updates(pos)
|
|||||||
end
|
end
|
||||||
|
|
||||||
core.register_globalstep(function(dtime)
|
core.register_globalstep(function(dtime)
|
||||||
|
if not has_block_updates then return end
|
||||||
|
|
||||||
local start = core.get_us_time()
|
local start = core.get_us_time()
|
||||||
local updates = pending_block_updates
|
local updates = pending_block_updates
|
||||||
pending_block_updates = {}
|
pending_block_updates = {}
|
||||||
|
has_block_updates = false
|
||||||
|
|
||||||
for hash,_ in pairs(updates) do
|
for hash,_ in pairs(updates) do
|
||||||
local lookaside = lookaside_cache[hash]
|
local lookaside = lookaside_cache[hash]
|
||||||
|
Loading…
Reference in New Issue
Block a user