aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/game/falling.lua3
-rw-r--r--builtin/game/item.lua6
-rw-r--r--src/game.cpp3
3 files changed, 8 insertions, 4 deletions
diff --git a/builtin/game/falling.lua b/builtin/game/falling.lua
index 39a74008c..5ef5289be 100644
--- a/builtin/game/falling.lua
+++ b/builtin/game/falling.lua
@@ -134,7 +134,8 @@ end
function builtin_shared.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
+ if def.paramtype2 == "wallmounted" or
+ def.paramtype2 == "colorwallmounted" then
-- 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.
diff --git a/builtin/game/item.lua b/builtin/game/item.lua
index a8dc51d61..38ef1714f 100644
--- a/builtin/game/item.lua
+++ b/builtin/game/item.lua
@@ -262,7 +262,8 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
-- Calculate direction for wall mounted stuff like torches and signs
if def.place_param2 ~= nil then
newnode.param2 = def.place_param2
- elseif def.paramtype2 == 'wallmounted' and not param2 then
+ elseif (def.paramtype2 == 'wallmounted' or
+ def.paramtype2 == 'colorwallmounted') and not param2 then
local dir = {
x = under.x - above.x,
y = under.y - above.y,
@@ -270,7 +271,8 @@ function core.item_place_node(itemstack, placer, pointed_thing, param2)
}
newnode.param2 = core.dir_to_wallmounted(dir)
-- Calculate the direction for furnaces and chests and stuff
- elseif def.paramtype2 == 'facedir' and not param2 then
+ elseif (def.paramtype2 == 'facedir' or
+ def.paramtype2 == 'colorfacedir') and not param2 then
local placer_pos = placer:getpos()
if placer_pos then
local dir = {
diff --git a/src/game.cpp b/src/game.cpp
index 1735737de..55b2ccec9 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -884,7 +884,8 @@ bool nodePlacementPrediction(Client &client,
};
v3s16 pp;
- if (nodedef->get(id).param_type_2 == CPT2_WALLMOUNTED)
+ if (nodedef->get(id).param_type_2 == CPT2_WALLMOUNTED ||
+ nodedef->get(id).param_type_2 == CPT2_COLORED_WALLMOUNTED)
pp = p + wallmounted_dirs[param2];
else
pp = p + v3s16(0, -1, 0);