From cdd8ea1dbc423fc0f2ed74ed5f277e8ae396b237 Mon Sep 17 00:00:00 2001 From: cora Date: Wed, 2 Nov 2022 13:02:52 +0100 Subject: [PATCH] Optimize dripping ABMs --- mods/ENTITIES/mcl_dripping/init.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mods/ENTITIES/mcl_dripping/init.lua b/mods/ENTITIES/mcl_dripping/init.lua index f03ba3b24..b5a5043b7 100644 --- a/mods/ENTITIES/mcl_dripping/init.lua +++ b/mods/ENTITIES/mcl_dripping/init.lua @@ -64,14 +64,15 @@ function mcl_dripping.register_drop(def) interval = def.interval, chance = def.chance, action = function(pos) + local below = minetest.get_node(vector.offset(pos,0,-1,0)).name + if below ~= "air" then return end local r = math.ceil(def.interval / 20) local nn = minetest.find_nodes_in_area(vector.offset(pos, -r, 0, -r), vector.offset(pos, r, 0, r), def.nodes) --start a bunch of particle cycles to be able to get away --with longer abm cycles table.shuffle(nn) for i = 1, math.random(#nn) do - if minetest.get_item_group(minetest.get_node(vector.offset(nn[i], 0, 1, 0)).name, def.liquid) ~= 0 - and minetest.get_node(vector.offset(nn[i], 0, -1, 0)).name == "air" then + if minetest.get_item_group(minetest.get_node(vector.offset(nn[i], 0, 1, 0)).name, def.liquid) ~= 0 then make_drop(nn[i], def.liquid, def.sound, def.interval, def.texture) end end @@ -85,7 +86,7 @@ mcl_dripping.register_drop({ light = 1, nodes = { "group:opaque", "group:leaves" }, sound = "drippingwater_drip", - interval = 60, + interval = 60.3, chance = 10, }) @@ -95,6 +96,6 @@ mcl_dripping.register_drop({ light = math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3), nodes = { "group:opaque" }, sound = "drippingwater_lavadrip", - interval = 60, + interval = 110.1, chance = 10, })