From 6a9cbcad827c9e04eee53321844b170dfa63e388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Mon, 1 Feb 2021 23:00:05 +0100 Subject: [PATCH] Beds: Preserve player physics (#2789) --- mods/beds/functions.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua index 933a6e88..46641636 100644 --- a/mods/beds/functions.lua +++ b/mods/beds/functions.lua @@ -61,7 +61,6 @@ local function lay_down(player, pos, bed_pos, state, skip) -- stand up if state ~= nil and not state then local p = beds.pos[name] or nil - beds.player[name] = nil beds.bed_position[name] = nil -- skip here to prevent sending player specific changes (used for leaving players) if skip then @@ -72,10 +71,16 @@ local function lay_down(player, pos, bed_pos, state, skip) end -- physics, eye_offset, etc + local physics_override = assert(beds.player[name].physics_override) + beds.player[name] = nil + player:set_physics_override({ + speed = physics_override.speed, + jump = physics_override.jump, + gravity = physics_override.gravity + }) player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_look_horizontal(math.random(1, 180) / 100) player_api.player_attached[name] = false - player:set_physics_override({speed = 1, jump = 1, gravity = 1}) hud_flags.wielditem = true player_api.set_animation(player, "stand" , 30) @@ -98,7 +103,7 @@ local function lay_down(player, pos, bed_pos, state, skip) beds.pos[name] = pos beds.bed_position[name] = bed_pos - beds.player[name] = 1 + beds.player[name] = {physics_override = player:get_physics_override()} -- physics, eye_offset, etc player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0})