summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2016-07-21 09:01:48 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2016-07-21 09:01:48 +0100
commit04166fc7e4e45102261594fcb043c0ea8bf182ee (patch)
treee92d4b605c9ee13d92cf0317be9f32caccb94770 /init.lua
parentf5dd6da5635e67e3c44ed3530d19a29a6ee16083 (diff)
Flipped horizontal AND vertical thanks to auouymous
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua36
1 files changed, 21 insertions, 15 deletions
diff --git a/init.lua b/init.lua
index 3a366c0..635d0bd 100644
--- a/init.lua
+++ b/init.lua
@@ -247,26 +247,32 @@ function minetest.is_protected(pos, digger)
player:set_hp(player:get_hp() - protector.hurt)
end
- -- flip player around when protection violated
+ -- flip player when protection violated
if protector.flip
and player then
+ -- yaw + 180°
+ local yaw = player:get_look_yaw() + math.pi
+
+ if yaw > 2 * math.pi then
+ yaw = yaw - 2 * math.pi
+ end
+
+ player:set_look_yaw(yaw)
+
+ -- invert pitch
+ player:set_look_vertical(-player:get_look_vertical())
+
+ -- if digging below player, move up 1 block
local pla_pos = player:getpos()
- local vec = {
- x = pos.x - pla_pos.x,
- y = pos.y - pla_pos.y,
- z = pos.z - pla_pos.z
- }
- if vec.x ~= 0
- and vec.z ~= 0 then
-
- local yaw = math.atan(vec.z / vec.x) + 3 * math.pi / 2
-
- if pos.x > pla_pos.x then
- yaw = yaw + math.pi
- end
- player:set_look_yaw(yaw)
+ if pos.y < pla_pos.y then
+
+ player:setpos({
+ x = pla_pos.x,
+ y = pla_pos.y + 1,
+ z = pla_pos.z
+ })
end
end