From 89dbc0a25d4e38d706f0fd3d604d4ac5ce57d240 Mon Sep 17 00:00:00 2001
From: paramat <mat.gregory@virginmedia.com>
Date: Sun, 2 Oct 2016 22:04:47 +0100
Subject: [PATCH] Builtin/falling: Add fallback vector in case of nil
 'wallmounted to dir'

The fallback vector is in case 'wallmounted to dir' is nil due
to voxelmanip placing a wallmounted node without resetting a
pre-existing param2 value that is out-of-range for wallmounted.
The fallback vector corresponds to param2 = 0.
---
 builtin/game/falling.lua | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index fa7ff24bc..4b16a0586 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -130,7 +130,11 @@ function check_attached_node(p, n)
 	local def = core.registered_nodes[n.name]
 	local d = {x = 0, y = 0, z = 0}
 	if def.paramtype2 == "wallmounted" then
-		d = core.wallmounted_to_dir(n.param2)
+		-- The fallback vector here is in case 'wallmounted to dir' is nil due
+		-- to voxelmanip placing a wallmounted node without resetting a
+		-- pre-existing param2 value that is out-of-range for wallmounted.
+		-- The fallback vector corresponds to param2 = 0.
+		d = core.wallmounted_to_dir(n.param2) or {x = 0, y = 1, z = 0}
 	else
 		d.y = -1
 	end
-- 
GitLab