|
end
end
checked[#checked+1] = pos
i = i + 1
until i > #stack
return nodes, positions
end;
}
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
end
end
checked[#checked+1] = pos
i = i + 1
until i > #stack
return nodes, positions
end;
forneighbor = function(pos, n, fn)
for _,p in pairs(n) do
local sum = vector.add(pos, p)
fn(sum, minetest.get_node(sum))
end
end;
-- when items have already been removed; notify cannot be relied on
-- to reach the entire network; this function accounts for the gap
notifyneighbors = function(pos)
sorcery.lib.node.forneighbor(pos, sorcery.ley.txofs, function(pos,node)
if minetest.get_item_group(node.name,'sorcery_ley_device') ~= 0 then
sorcery.ley.notify(sum)
end
end)
end;
blockpos = function(pos)
return {
x = math.floor(pos.x / 16);
y = math.floor(pos.y / 16);
z = math.floor(pos.z / 16);
}
end;
preload = function(pos, user)
minetest.load_area(pos)
user:send_mapblock(sorcery.lib.node.blockpos(pos))
end;
}
|