Skip to content
Permalink
Browse files

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

  • Loading branch information
PilzAdam authored and sfan5 committed Dec 20, 2014
1 parent 854415f commit 1237bc3a4b3c6f435059d669345446fa44768f32
Showing with 8 additions and 6 deletions.
  1. +8 −6 mods/screwdriver/init.lua
@@ -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

0 comments on commit 1237bc3

Please sign in to comment.