2 minetest,vector,math,pairs
4 minetest,vector,math,pairs
18 local function flow(player)
19 name = player:get_player_name()
20 pos = player:get_pos()
21 pos.y = pos.y + player:get_properties().collisionbox[2]
22 pos = vector.round(pos)
23 node = minetest.get_node(pos).name
24 node_above = minetest.get_node(vector.new(pos.x,pos.y+1,pos.z)).name
28 if node == "main:waterflow" then
29 currentvel = player:get_player_velocity()
30 level = minetest.get_node_level(pos)
33 if found == false then
34 nodename = minetest.get_node(vector.new(pos.x+x,pos.y,pos.z+z)).name
35 level2 = minetest.get_node_level(vector.new(pos.x+x,pos.y,pos.z+z))
36 if level2 > level and nodename == "main:waterflow" or nodename == "main:water" then
40 if goalx ~= 0 and goalz ~= 0 then
47 --only add velocity if there is one
48 --else this stops the player
49 if goalx ~= 0 and goalz ~= 0 then
50 acceleration = vector.new(goalx/3,0,goalz/3)
51 player:add_player_velocity(acceleration)
52 elseif goalx ~= 0 or goalz ~= 0 then
53 acceleration = vector.new(goalx/2.25,0,goalz/2.25)
54 player:add_player_velocity(acceleration)
61 minetest.register_globalstep(function()
62 for _,player in ipairs(minetest.get_connected_players()) do
63 legs = minetest.get_item_group(get_player_legs_env(player),"water") > 0