From 00123ee04d19ecc98e0a6a9255e5697a78167360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Juh=C3=A1sz?= Date: Sat, 18 Feb 2017 20:26:19 +0100 Subject: Fixes for colorwallmounted and colorfacedir nodes Correct node placement prediction for attached colorwallmounted nodes. Correct placement direction for colorfacedir and colorwallmounted nodes. Correct detatch mechanism for attached colorwallmounted nodes. --- builtin/game/falling.lua | 3 ++- builtin/game/item.lua | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'builtin') 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 = { -- cgit v1.2.3