summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2016-07-20 16:23:12 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2016-07-20 16:23:12 +0100
commitf5dd6da5635e67e3c44ed3530d19a29a6ee16083 (patch)
treecb30933e8f58c0b15f3ff0f187daa051994a8cef /init.lua
parenta9981e351816868d92ce8ff826539a3c4fb2fabf (diff)
Added protector_flip bool for .conf settings
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua25
1 files changed, 24 insertions, 1 deletions
diff --git a/init.lua b/init.lua
index 3c977b3..3a366c0 100644
--- a/init.lua
+++ b/init.lua
@@ -5,6 +5,7 @@ protector = {}
protector.mod = "redo"
protector.radius = (tonumber(minetest.setting_get("protector_radius")) or 5)
protector.drop = minetest.setting_getbool("protector_drop") or false
+protector.flip = minetest.setting_getbool("protector_flip") or false
protector.hurt = (tonumber(minetest.setting_get("protector_hurt")) or 0)
-- Intllib
@@ -246,6 +247,29 @@ function minetest.is_protected(pos, digger)
player:set_hp(player:get_hp() - protector.hurt)
end
+ -- flip player around when protection violated
+ if protector.flip
+ and player then
+
+ 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)
+ end
+ end
+
-- drop tool/item if protection violated
if protector.drop == true
and player then
@@ -270,7 +294,6 @@ function minetest.is_protected(pos, digger)
end)
end
-
end
return true