forked from VoxeLibre/VoxeLibre
Fix controls.register_on_press being called for every player in a globalstep
This commit is contained in:
parent
f79e12c8ae
commit
f8b54db392
|
@ -199,22 +199,7 @@ minetest.register_globalstep(function(dtime)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if elytra[player] == true and ~= nil then
|
||||||
controls.register_on_press(function(player, key)
|
|
||||||
if key~="jump" and key~="RMB" then return end
|
|
||||||
if key=="jump" then
|
|
||||||
if player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra" and player_velocity.y < -6 and elytra[player] ~= true then
|
|
||||||
elytra[player] = true
|
|
||||||
elseif key=="RMB" then
|
|
||||||
if wielded:get_name() == "mcl_tools:rocket" then
|
|
||||||
wielded:take_item()
|
|
||||||
player:set_wielded_item(wielded)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
if elytra[player] == true and node_stand_return ~= "air" or elytra[player] == true and player:get_inventory():get_stack("armor", 3):get_name() ~= "mcl_armor:elytra" or player:get_attach() ~= nil then
|
|
||||||
elytra[player] = false
|
elytra[player] = false
|
||||||
end
|
end
|
||||||
--[[
|
--[[
|
||||||
|
@ -224,7 +209,12 @@ minetest.register_globalstep(function(dtime)
|
||||||
elytra[player] = false
|
elytra[player] = false
|
||||||
end]]
|
end]]
|
||||||
|
|
||||||
if elytra[player] == true then
|
local wearing_elytra = player:get_inventory():get_stack("armor", 3):get_name() == "mcl_armor:elytra"
|
||||||
|
|
||||||
|
if elytra[player] then
|
||||||
|
if node_stand_return ~= "air" or not wearing_elytra or player:get_attach() then
|
||||||
|
elytra[player] = false
|
||||||
|
else
|
||||||
mcl_player.player_set_animation(player, "fly")
|
mcl_player.player_set_animation(player, "fly")
|
||||||
playerphysics.add_physics_factor(player, "gravity", "mcl_playerplus:elytra", 0.1)
|
playerphysics.add_physics_factor(player, "gravity", "mcl_playerplus:elytra", 0.1)
|
||||||
if player_velocity.y < -1.5 then
|
if player_velocity.y < -1.5 then
|
||||||
|
@ -239,6 +229,9 @@ minetest.register_globalstep(function(dtime)
|
||||||
end
|
end
|
||||||
player:add_velocity({x=dir.x, y=look_pitch, z=dir.z})
|
player:add_velocity({x=dir.x, y=look_pitch, z=dir.z})
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
elseif wearing_elytra and player_velocity.y < -6 and controls.jump then
|
||||||
|
elytra[player] = true
|
||||||
else
|
else
|
||||||
playerphysics.remove_physics_factor(player, "gravity", "mcl_playerplus:elytra")
|
playerphysics.remove_physics_factor(player, "gravity", "mcl_playerplus:elytra")
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue