Redo backwards compatibility hack

This commit is contained in:
Lars Mueller 2020-12-06 11:28:28 +01:00
parent e03266dd4f
commit ec9c227062
2 changed files with 9 additions and 17 deletions

View file

@ -73,7 +73,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
player:set_look_horizontal(math.random(1, 180) / 100)
player_api.player_attached[name] = false
player:set_physics_override(1, 1, 1)
--player:set_physics_override(1, 1, 1)
hud_flags.wielditem = true
player_api.set_animation(player, "stand" , 30)
@ -108,7 +108,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
y = bed_pos.y + 0.07,
z = bed_pos.z + dir.z / 2
}
player:set_physics_override(0, 0, 0)
--player:set_physics_override(0, 0, 0)
player:set_pos(p)
player_api.player_attached[name] = true
hud_flags.wielditem = false

View file

@ -49,7 +49,7 @@ local players = {}
player_api.player_attached = {}
local function get_player_data(player)
return assert(players[player:get_player_name()], "offline_player")
return assert(players[player:get_player_name()])
end
function player_api.get_animation(player)
@ -183,22 +183,14 @@ minetest.register_globalstep(function()
end
end)
-- HACK for keeping backwards compatibility
for _, api_function in pairs({"get_animation", "set_animation", "set_model", "set_textures"}) do
local original_function = player_api[api_function]
player_api[api_function] = function(...)
local arguments = {...}
local ret -- single value works because get_animation returns only one value
local status, err = pcall(function()
ret = original_function(unpack(arguments))
end)
if not status then
if err == "offline_player" then
player_api[api_function] = function(player, ...)
if not players[player:get_player_name()] then
-- HACK for keeping backwards compatibility
minetest.log("warning", api_function .. " called on offline player")
return
end
error(err)
end
return ret
original_function(player, ...)
end
end