mirror of
https://bitbucket.org/Infinatum/scaffolding.git
synced 2025-07-21 17:30:26 +02:00
Scaffolding mod
This commit is contained in:
89
functions.lua
Normal file
89
functions.lua
Normal file
@ -0,0 +1,89 @@
|
||||
scaffolding_nodenames={"scaffolding:scaffolding"}
|
||||
|
||||
minetest.register_on_dignode(function(pos, node)
|
||||
local i=1
|
||||
while scaffolding_nodenames[i]~=nil do
|
||||
if node.name==scaffolding_nodenames[i] then
|
||||
np={x=pos.x, y=pos.y+1, z=pos.z}
|
||||
while minetest.env:get_node(np).name==scaffolding_nodenames[i] do
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_item(np, scaffolding_nodenames[i])
|
||||
np={x=np.x, y=np.y+1, z=np.z}
|
||||
end
|
||||
end
|
||||
i=i+1
|
||||
end
|
||||
end)
|
||||
|
||||
iron_scaffolding_nodenames={"scaffolding:iron_scaffolding"}
|
||||
|
||||
minetest.register_on_dignode(function(pos, node)
|
||||
local i=1
|
||||
while iron_scaffolding_nodenames[i]~=nil do
|
||||
if node.name==iron_scaffolding_nodenames[i] then
|
||||
np={x=pos.x, y=pos.y, z=pos.z+1}
|
||||
while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_item(np, iron_scaffolding_nodenames[i])
|
||||
np={x=np.x, y=np.y, z=np.z+1}
|
||||
end
|
||||
end
|
||||
i=i+1
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.register_on_dignode(function(pos, node)
|
||||
local i=1
|
||||
while iron_scaffolding_nodenames[i]~=nil do
|
||||
if node.name==iron_scaffolding_nodenames[i] then
|
||||
np={x=pos.x, y=pos.y, z=pos.z-1}
|
||||
while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_item(np, iron_scaffolding_nodenames[i])
|
||||
np={x=np.x, y=np.y, z=np.z-1}
|
||||
end
|
||||
end
|
||||
i=i-1
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.register_on_dignode(function(pos, node)
|
||||
local i=1
|
||||
while iron_scaffolding_nodenames[i]~=nil do
|
||||
if node.name==iron_scaffolding_nodenames[i] then
|
||||
np={x=pos.x+1, y=pos.y, z=pos.z}
|
||||
while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_item(np, iron_scaffolding_nodenames[i])
|
||||
np={x=np.x+1, y=np.y, z=np.z}
|
||||
end
|
||||
end
|
||||
i=i+1
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.register_on_dignode(function(pos, node)
|
||||
local i=1
|
||||
while iron_scaffolding_nodenames[i]~=nil do
|
||||
if node.name==iron_scaffolding_nodenames[i] then
|
||||
np={x=pos.x-1, y=pos.y, z=pos.z}
|
||||
while minetest.env:get_node(np).name==iron_scaffolding_nodenames[i] do
|
||||
minetest.env:remove_node(np)
|
||||
minetest.env:add_item(np, iron_scaffolding_nodenames[i])
|
||||
np={x=np.x-1, y=np.y, z=np.z}
|
||||
end
|
||||
end
|
||||
i=i-1
|
||||
end
|
||||
end)
|
||||
|
||||
-- falling nodes go into pocket --
|
||||
|
||||
function default.dig_hor(pos, node, digger)
|
||||
if digger == nil then return end
|
||||
local np = {x = pos.x, y = pos.y, z = pos.z + 1,}
|
||||
local nn = minetest.get_node(np)
|
||||
if nn.name == node.name then
|
||||
minetest.node_dig(np, nn, digger)
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user