Optimize dripping ABMs
parent
5355234af1
commit
cdd8ea1dbc
|
@ -64,14 +64,15 @@ function mcl_dripping.register_drop(def)
|
||||||
interval = def.interval,
|
interval = def.interval,
|
||||||
chance = def.chance,
|
chance = def.chance,
|
||||||
action = function(pos)
|
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 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)
|
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
|
--start a bunch of particle cycles to be able to get away
|
||||||
--with longer abm cycles
|
--with longer abm cycles
|
||||||
table.shuffle(nn)
|
table.shuffle(nn)
|
||||||
for i = 1, math.random(#nn) do
|
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
|
if minetest.get_item_group(minetest.get_node(vector.offset(nn[i], 0, 1, 0)).name, def.liquid) ~= 0 then
|
||||||
and minetest.get_node(vector.offset(nn[i], 0, -1, 0)).name == "air" then
|
|
||||||
make_drop(nn[i], def.liquid, def.sound, def.interval, def.texture)
|
make_drop(nn[i], def.liquid, def.sound, def.interval, def.texture)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -85,7 +86,7 @@ mcl_dripping.register_drop({
|
||||||
light = 1,
|
light = 1,
|
||||||
nodes = { "group:opaque", "group:leaves" },
|
nodes = { "group:opaque", "group:leaves" },
|
||||||
sound = "drippingwater_drip",
|
sound = "drippingwater_drip",
|
||||||
interval = 60,
|
interval = 60.3,
|
||||||
chance = 10,
|
chance = 10,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -95,6 +96,6 @@ mcl_dripping.register_drop({
|
||||||
light = math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3),
|
light = math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3),
|
||||||
nodes = { "group:opaque" },
|
nodes = { "group:opaque" },
|
||||||
sound = "drippingwater_lavadrip",
|
sound = "drippingwater_lavadrip",
|
||||||
interval = 60,
|
interval = 110.1,
|
||||||
chance = 10,
|
chance = 10,
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue