forked from VoxeLibre/VoxeLibre
WIP
This commit is contained in:
parent
14c19c915f
commit
75689afdb4
|
@ -67,15 +67,18 @@ function mcl_sponges.absorb(pos)
|
||||||
-- to determine the wet sponge type.
|
-- to determine the wet sponge type.
|
||||||
local out = {}
|
local out = {}
|
||||||
local p, n
|
local p, n
|
||||||
|
local count = 0
|
||||||
for i=-3,3 do
|
for i=-3,3 do
|
||||||
for j=-3,3 do
|
for j=-3,3 do
|
||||||
for k=-3,3 do
|
for k=-3,3 do
|
||||||
|
count = count + 1
|
||||||
pos = {x=pos.x+i, y=pos.y+j, z=pos.z+k}
|
pos = {x=pos.x+i, y=pos.y+j, z=pos.z+k}
|
||||||
node = minetest.get_node(pos)
|
node = minetest.get_node(pos)
|
||||||
for name,def in pairs(mcl_sponges.registered_sponges) do
|
for name,def in pairs(mcl_sponges.registered_sponges) do
|
||||||
if minetest.get_item_group(node.name, def.liquidgroup) ~= 0 then
|
if minetest.get_item_group(node.name, def.liquidgroup) ~= 0 then
|
||||||
minetest.add_node(pos, {name="air"})
|
minetest.add_node(pos, {name="air"})
|
||||||
change = true
|
change = true
|
||||||
|
if not out[name] then out[name] = 0 end
|
||||||
out[name] = out[name]+1
|
out[name] = out[name]+1
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
@ -83,13 +86,22 @@ function mcl_sponges.absorb(pos)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
minetest.chat_send_all(count)
|
||||||
-- The dominant water type wins. In case of a tie, normal water wins.
|
-- The dominant water type wins. In case of a tie, normal water wins.
|
||||||
-- This slight bias is intentional.
|
-- This slight bias is intentional.
|
||||||
local sponge_type
|
local sponge_type
|
||||||
if river_water > non_river_water then
|
local biggest
|
||||||
sponge_type = "mcl_sponges:sponge_wet_river_water"
|
for name, number in pairs(out) do
|
||||||
else
|
if biggest then
|
||||||
sponge_type = "mcl_sponges:sponge_wet"
|
if biggest < number then
|
||||||
|
sponge_type = name
|
||||||
|
biggest = number
|
||||||
|
end
|
||||||
|
else
|
||||||
|
sponge_type = name
|
||||||
|
biggest = number
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
return change, sponge_type
|
return change, sponge_type
|
||||||
end
|
end
|
||||||
|
@ -263,7 +275,7 @@ minetest.register_abm({
|
||||||
interval = 1,
|
interval = 1,
|
||||||
chance = 1,
|
chance = 1,
|
||||||
action = function(pos)
|
action = function(pos)
|
||||||
local absorbed, wet_sponge = absorb(pos)
|
local absorbed, wet_sponge = mcl_sponges.absorb(pos)
|
||||||
if absorbed then
|
if absorbed then
|
||||||
minetest.add_node(pos, {name = wet_sponge})
|
minetest.add_node(pos, {name = wet_sponge})
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue