Skip to content

Commit

Permalink
Default, fire: Disable catch-up in some ABMs
Browse files Browse the repository at this point in the history
To avoid processing spikes where catch-up is non-essential
Disable in: Lavacooling, grass growing, grass removal
and all fire mod ABMs
  • Loading branch information
paramat committed Nov 14, 2015
1 parent e67e28d commit e41a411
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
4 changes: 4 additions & 0 deletions mods/default/functions.lua
Expand Up @@ -105,6 +105,7 @@ minetest.register_abm({
neighbors = {"group:water"},
interval = 1,
chance = 2,

This comment has been minimized.

Copy link
@HybridDog

HybridDog Nov 15, 2015

Contributor

lf chance was set to 1, disabling catching up would do nothing, would it?

This comment has been minimized.

Copy link
@paramat

paramat Nov 19, 2015

Author Contributor

Correct.

This comment has been minimized.

Copy link
@HybridDog

HybridDog Nov 19, 2015

Contributor

thanks

catch_up = false,
action = function(...)
default.cool_lava_flowing(...)
end,
Expand All @@ -115,6 +116,7 @@ minetest.register_abm({
neighbors = {"group:water"},
interval = 1,
chance = 2,
catch_up = false,
action = function(...)
default.cool_lava_source(...)
end,
Expand Down Expand Up @@ -313,6 +315,7 @@ minetest.register_abm({
nodenames = {"default:dirt"},
interval = 2,
chance = 200,
catch_up = false,
action = function(pos, node)
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
local name = minetest.get_node(above).name
Expand All @@ -338,6 +341,7 @@ minetest.register_abm({
nodenames = {"default:dirt_with_grass", "default:dirt_with_dry_grass"},
interval = 2,
chance = 20,
catch_up = false,
action = function(pos, node)
local above = {x = pos.x, y = pos.y + 1, z = pos.z}
local name = minetest.get_node(above).name
Expand Down
4 changes: 4 additions & 0 deletions mods/fire/init.lua
Expand Up @@ -171,6 +171,7 @@ minetest.register_abm({
neighbors = {"group:puts_out_fire"},
interval = 3,
chance = 2,
catch_up = false,
action = function(p0, node, _, _)
minetest.remove_node(p0)
minetest.sound_play("fire_extinguish_flame",
Expand All @@ -189,6 +190,7 @@ if minetest.setting_getbool("disable_fire") then
nodenames = {"fire:basic_flame"},
interval = 7,
chance = 2,
catch_up = false,
action = function(p0, node, _, _)
minetest.remove_node(p0)
end,
Expand All @@ -203,6 +205,7 @@ else
neighbors = {"group:igniter"},
interval = 7,
chance = 16,
catch_up = false,
action = function(p0, node, _, _)
-- If there is water or stuff like that around node, don't ignite
if fire.flame_should_extinguish(p0) then
Expand All @@ -221,6 +224,7 @@ else
nodenames = {"fire:basic_flame"},
interval = 5,
chance = 16,
catch_up = false,
action = function(p0, node, _, _)
-- If there are no flammable nodes around flame, remove flame
if not minetest.find_node_near(p0, 1, {"group:flammable"}) then
Expand Down

0 comments on commit e41a411

Please sign in to comment.