From 43185f19e386af3b7a0831fc8e7417d0e54544e7 Mon Sep 17 00:00:00 2001 From: Mantar Date: Sun, 24 Dec 2023 04:41:26 -0800 Subject: [PATCH] Bed bugfix: Remove "reverse" toggle in favor of swap_node/set_node combo (#2976) --- mods/beds/api.lua | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/mods/beds/api.lua b/mods/beds/api.lua index 8af13ddd..ea3149a6 100644 --- a/mods/beds/api.lua +++ b/mods/beds/api.lua @@ -1,6 +1,4 @@ -local reverse = true - local function destruct_bed(pos, n) local node = minetest.get_node(pos) local other @@ -12,15 +10,14 @@ local function destruct_bed(pos, n) local dir = minetest.facedir_to_dir(node.param2) other = vector.add(pos, dir) end - - if reverse then - reverse = not reverse - minetest.remove_node(other) - minetest.check_for_falling(other) - beds.remove_spawns_at(pos) - beds.remove_spawns_at(other) - else - reverse = not reverse + local oname = minetest.get_node(other).name + if minetest.get_item_group(oname, "bed") ~= 0 then + -- Swap node leaves meta, but doesn't call destruct_bed again + minetest.swap_node(other, {name = "air"}) + minetest.remove_node(other) -- Now clear the meta + minetest.check_for_falling(other) + beds.remove_spawns_at(pos) + beds.remove_spawns_at(other) end end