40 lines
1.0 KiB
Lua
40 lines
1.0 KiB
Lua
--TODO: maybe some glitches?
|
|
|
|
minetest.register_on_joinplayer(function(player)
|
|
local meta = player:get_meta()
|
|
meta:set_float("speed", 1)
|
|
end)
|
|
|
|
minetest.register_globalstep(function(dtime)
|
|
for _,player in ipairs(minetest.get_connected_players()) do
|
|
local meta = player:get_meta()
|
|
local name = player:get_player_name()
|
|
if minetest.get_node(player:get_pos()).name == "default:water_source" then
|
|
meta:set_int("in_liquid", 1)
|
|
else
|
|
meta:set_int("in_liquid", 0)
|
|
end
|
|
|
|
--print( meta:get_int("in_liquid") )
|
|
local tempmeta = meta:get_int("in_liquid")
|
|
|
|
if tempmeta==1 then
|
|
if math.floor(player:get_physics_override().speed*10)/10 ~= 0.4 then
|
|
meta:set_float("speed", player:get_physics_override().speed)
|
|
end
|
|
player:set_physics_override({
|
|
speed = 0.4
|
|
})
|
|
elseif tempmeta==0 then
|
|
if math.floor(player:get_physics_override().speed*10)/10 == 0.4 then
|
|
player:set_physics_override({
|
|
speed = meta:get_float("speed")
|
|
})
|
|
end
|
|
|
|
|
|
end
|
|
|
|
end
|
|
end)
|