server-nalc/mods/playerplus/init.lua

61 lines
1.4 KiB
Lua
Executable File

-- walking on ice makes player walk faster, also cactus hurts player when touched
-- by TenPlus1
local time = 0
minetest.register_globalstep(function(dtime)
time = time + dtime
-- every 1 second
if time > 1 then
-- check players
for _,player in ipairs(minetest.get_connected_players()) do
-- is it me?
if player:is_player() then
-- where am I?
local pos = player:getpos()
-- what am I standing on?
pos.y = pos.y - 0.1 -- just under player to detect snow also
local nod = minetest.get_node(pos).name
-- standing on ice? if so walk faster
if nod == "default:ice" then
player:set_physics_override(1.3, 1, 1)
-- standing on snow? if so walk slower
elseif nod == "default:snow" or nod == "default:snowblock" then
player:set_physics_override(0.7, 1, 1)
else
player:set_physics_override(1, 1, 1) -- (default speed, jump, gravity)
end
-- am I near a cactus?
pos.y = pos.y + 0.1
local near = minetest.find_node_near(pos, 1, "default:cactus")
if near then
pos = near
-- am I touching the cactus? if so it hurts
for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1.0)) do
if object:get_hp() > 0 then
object:set_hp(object:get_hp()-1)
end
end
end
-- reset time and break entity check
time = 0
break
end
end
-- incase none of the above happened, reset time for next check
time = 0
end
end)