37 lines
948 B
Lua
Raw Normal View History

-- LUALOCALS < ---------------------------------------------------------
local minetest, pairs
= minetest, pairs
-- LUALOCALS > ---------------------------------------------------------
local liquids = {}
minetest.after(0, function()
for k, v in pairs(minetest.registered_items) do
if v.liquidtype and v.liquidtype ~= "none" then
liquids[k] = true
end
end
end)
local function checkbuoy(player)
if (not player.add_player_velocity)
or (player:get_player_control_bits() ~= 0) then return end
local pos = player:get_pos()
local node = minetest.get_node({
x = pos.x,
y = pos.y + (player:get_properties().eye_height - 1) / 2 + 1,
z = pos.z
})
if not liquids[node.name] then return end
return player:add_player_velocity({x = 0, y = 8, z = 0})
end
local function timer()
minetest.after(0.25, timer)
for _, player in pairs(minetest.get_connected_players()) do
checkbuoy(player)
end
end
minetest.after(0, timer)