Don't override param2 bits that are not used for rotation in screwdriver

master
PilzAdam 2014-12-15 22:12:21 +01:00 committed by sfan5
parent 854415fd33
commit 1237bc3a4b
1 changed files with 8 additions and 6 deletions

View File

@ -37,16 +37,18 @@ local function screwdriver_handler(itemstack, user, pointed_thing, mode)
end
-- Set param2
local n = node.param2
local axisdir = math.floor(n / 4)
local rotation = n - axisdir * 4
local rotationPart = node.param2 % 32 -- get first 4 bits
local preservePart = node.param2 - rotationPart
local axisdir = math.floor(rotationPart / 4)
local rotation = rotationPart - axisdir * 4
if mode == ROTATE_FACE then
n = axisdir * 4 + nextrange(rotation, 3)
rotationPart = axisdir * 4 + nextrange(rotation, 3)
elseif mode == ROTATE_AXIS then
n = nextrange(axisdir, 5) * 4
rotationPart = nextrange(axisdir, 5) * 4
end
node.param2 = n
node.param2 = preservePart + rotationPart
minetest.swap_node(pos, node)
if not minetest.setting_getbool("creative_mode") then