slower_in_liquid/init.lua

40 lines
1.0 KiB
Lua
Raw Normal View History

2022-02-18 20:49:39 +00:00
--TODO: maybe some glitches?
minetest.register_on_joinplayer(function(player)
local meta = player:get_meta()
meta:set_float("speed", 1)
end)
2022-02-18 17:44:20 +00:00
minetest.register_globalstep(function(dtime)
for _,player in ipairs(minetest.get_connected_players()) do
2022-02-18 20:49:39 +00:00
local meta = player:get_meta()
2022-02-18 17:44:20 +00:00
local name = player:get_player_name()
if minetest.get_node(player:get_pos()).name == "default:water_source" then
2022-02-18 20:49:39 +00:00
meta:set_int("in_liquid", 1)
2022-02-18 17:44:20 +00:00
else
2022-02-18 20:49:39 +00:00
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
2022-02-18 17:44:20 +00:00
player:set_physics_override({
2022-02-18 20:49:39 +00:00
speed = 0.4
2022-02-18 17:44:20 +00:00
})
2022-02-18 20:49:39 +00:00
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
2022-02-18 17:44:20 +00:00
end
2022-02-18 20:49:39 +00:00
2022-02-18 17:44:20 +00:00
end
end)