Merge pull request 'Make cactus mechanisms more MC like (Fix #1741)' (#1851) from NO11/MineClone2:cactus into master

Reviewed-on: MineClone2/MineClone2#1851
This commit is contained in:
NO11 2021-09-03 16:20:14 +00:00
commit 872e3e74d3
1 changed files with 16 additions and 3 deletions

View File

@ -184,6 +184,7 @@ minetest.register_abm({
end, end,
}) })
-- Cactus mechanisms
minetest.register_abm({ minetest.register_abm({
label = "Cactus growth", label = "Cactus growth",
nodenames = {"mcl_core:cactus"}, nodenames = {"mcl_core:cactus"},
@ -195,19 +196,31 @@ minetest.register_abm({
end, end,
}) })
-- Make cactus destroy items
minetest.register_abm({ minetest.register_abm({
label = "Cactus destroy items", label = "Cactus mechanisms",
nodenames = {"mcl_core:cactus"}, nodenames = {"mcl_core:cactus"},
interval = 1, interval = 1,
chance = 1, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) action = function(pos, node, active_object_count, active_object_count_wider)
for _,object in pairs(minetest.get_objects_inside_radius(pos, 0.9)) do for _, object in pairs(minetest.get_objects_inside_radius(pos, 0.9)) do
local entity = object:get_luaentity() local entity = object:get_luaentity()
if entity and entity.name == "__builtin:item" then if entity and entity.name == "__builtin:item" then
object:remove() object:remove()
end end
end end
local posses = { { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 } }
for _, p in pairs(posses) do
if minetest.registered_nodes[minetest.get_node(vector.new(pos.x + p[1], pos.y, pos.z + p[2])).name].walkable then
local posy = pos.y
while minetest.get_node(vector.new(pos.x, posy, pos.z)).name == "mcl_core:cactus" do
local pos = vector.new(pos.x, posy, pos.z)
minetest.remove_node(pos)
minetest.add_item(vector.offset(pos, math.random(-0.5, 0.5), 0, math.random(-0.5, 0.5)), "mcl_core:cactus")
posy = posy + 1
end
break
end
end
end, end,
}) })