1 --this is from https://github.com/HybridDog/builtin_item/blob/e6dfd9dce86503b3cbd1474257eca5f6f6ca71c2/init.lua#L50
3 minetest,vector,math,pairs
5 minetest,vector,math,pairs
9 local function get_nodes(pos)
13 {x=pos.x+i, y=pos.y, z=pos.z},
14 {x=pos.x, y=pos.y, z=pos.z+i}
16 tab[n] = {p, minetest.get_node(p)}
31 local function get_flowing_dir(pos)
32 c_node = minetest.get_node(pos).name
33 if c_node ~= "main:waterflow" and c_node ~= "main:water" then
34 print("return initial")
38 param2 = minetest.get_node(pos).param2
43 if c_node == "main:water" then
44 for _,i in pairs(data) do
48 if name == "main:waterflow" and par2 == 7 then
49 return(vector.subtract(i[1],pos))
53 for _,i in pairs(data) do
57 if name == "main:waterflow" and par2 < param2 then
59 return(vector.subtract(i[1],pos))
62 for _,i in pairs(data) do
66 if name == "main:waterflow" and par2 >= 11 then
68 return(vector.subtract(i[1],pos))
71 for _,i in pairs(data) do
75 tmp = minetest.registered_nodes[name]
76 if tmp and not tmp.walkable and name ~= "main:waterflow" and name ~= "main:water" then
78 return(vector.subtract(i[1],pos))
85 function flow(self,pos)
86 return(get_flowing_dir(pos))