mirror of
https://github.com/minetest-mods/technic.git
synced 2025-03-20 11:20:31 +01:00
Merge 1f111c55e5e40e663b5062bba92db78980ce8f40 into 42efc7e47c8e89ed5436261786bbfa1740300730
This commit is contained in:
commit
10dfecc3c2
@ -151,23 +151,35 @@ local function quarry_run(pos, node)
|
|||||||
can_dig = false
|
can_dig = false
|
||||||
end
|
end
|
||||||
local dignode
|
local dignode
|
||||||
if can_dig then
|
if not pcall(
|
||||||
dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos)
|
function ()
|
||||||
local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false}
|
if can_dig then
|
||||||
if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, nil)) then
|
dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos)
|
||||||
can_dig = false
|
local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false}
|
||||||
end
|
if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, nil)) then
|
||||||
end
|
can_dig = false
|
||||||
|
end
|
||||||
if can_dig then
|
|
||||||
for ay = startpos.y, digpos.y+1, -1 do
|
|
||||||
local checkpos = {x=digpos.x, y=ay, z=digpos.z}
|
|
||||||
local checknode = technic.get_or_load_node(checkpos) or minetest.get_node(checkpos)
|
|
||||||
if checknode.name ~= "air" then
|
|
||||||
can_dig = false
|
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
if can_dig then
|
||||||
|
for ay = startpos.y, digpos.y+1, -1 do
|
||||||
|
local checkpos = {x=digpos.x, y=ay, z=digpos.z}
|
||||||
|
local checknode = technic.get_or_load_node(checkpos) or minetest.get_node(checkpos)
|
||||||
|
if checknode.name ~= "air" then
|
||||||
|
can_dig = false
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
then
|
||||||
|
-- handle exception caused by nil player - issue 172 & 231
|
||||||
|
dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos)
|
||||||
|
message = "ERROR: technic/machines/HV/quarry.lua: unhandled exception digging... skipping block: "
|
||||||
|
message = message .. "digpos = (" .. digpos.x .. "," .. digpos.y .. "," .. digpos.z .. ")"
|
||||||
|
message = message .. ", name = " .. dignode.name
|
||||||
|
print(message)
|
||||||
|
can_dig = false
|
||||||
end
|
end
|
||||||
nd = nd + 1
|
nd = nd + 1
|
||||||
if can_dig then
|
if can_dig then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user