From 9f9279008c9299f6f1accd0a3b230877caa87930 Mon Sep 17 00:00:00 2001
From: Sokomine <wegwerf@anarres.dyndns.org>
Date: Sat, 22 Nov 2014 21:40:23 +0100
Subject: [PATCH] added enable_build_where_you_stand option

Signed-off-by: Craig Robbins <kde.psych@gmail.com>
---
 minetest.conf.example   | 3 +++
 src/defaultsettings.cpp | 1 +
 src/game.cpp            | 1 +
 3 files changed, 5 insertions(+)

diff --git a/minetest.conf.example b/minetest.conf.example
index 6bd2e00b4..0d2c44c61 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -62,6 +62,9 @@
 #keymap_quicktune_dec = KEY_NEXT
 #keymap_quicktune_inc = KEY_PRIOR
 
+#if set to true, you can place blocks at the position (feet + eye level) where you stand; this is helpful when working with nodeboxes
+#enable_build_where_you_stand = false
+
 # Minimum FPS
 # The amount of rendered stuff is dynamically set according to this
 #wanted_fps = 30
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 135fa8762..72eac76c2 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -63,6 +63,7 @@ void set_default_settings(Settings *settings)
 	settings->setDefault("keymap_camera_mode", "KEY_F7");
 	settings->setDefault("keymap_increase_viewing_range_min", "+");
 	settings->setDefault("keymap_decrease_viewing_range_min", "-");
+	settings->setDefault("enable_build_where_you_stand", "false" );
 	settings->setDefault("3d_mode", "none");
 	settings->setDefault("3d_paralax_strength", "0.025");
 	settings->setDefault("aux1_descends", "false");
diff --git a/src/game.cpp b/src/game.cpp
index 70d526a9d..4af483bd7 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -967,6 +967,7 @@ bool nodePlacementPrediction(Client &client,
 			// Dont place node when player would be inside new node
 			// NOTE: This is to be eventually implemented by a mod as client-side Lua
 			if (!nodedef->get(n).walkable ||
+					g_settings->getBool("enable_build_where_you_stand") ||
 					(client.checkPrivilege("noclip") && g_settings->getBool("noclip")) ||
 					(nodedef->get(n).walkable &&
 					 neighbourpos != player->getStandingNodePos() + v3s16(0, 1, 0) &&
-- 
GitLab