From 9f49f3b29b9ce20b92366dacc357ad1bc2cefd58 Mon Sep 17 00:00:00 2001 From: Elkien3 Date: Thu, 6 Aug 2020 11:35:43 -0500 Subject: [PATCH] fix incorrect camera pos and send contect and identity every second with minetest 5.3.0 camera position no longer needs to be divided by 10 --- minetestmod/mumble/init.lua | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/minetestmod/mumble/init.lua b/minetestmod/mumble/init.lua index 8ac1c39..92fa3dc 100644 --- a/minetestmod/mumble/init.lua +++ b/minetestmod/mumble/init.lua @@ -1,5 +1,8 @@ local player local serverinfo +local minetestversion = string.gsub(minetest.get_version().string, '%.', '') +minetestversion = tonumber(minetestversion) +local timer = 0 minetest.register_globalstep(function(dtime) if minetest.localplayer and not player then @@ -10,15 +13,25 @@ minetest.register_globalstep(function(dtime) minetest.display_chat_message("!Mumble loaded! This mod uses print() to send ingame positional data, so your debug.txt may get quite large, and it's recommended to set debug_log_level to nothing if you haven't already.") end if player then + timer = timer + dtime + if timer > 1 then + serverinfo = minetest.get_server_info() + minetest.log("action", "mumble id "..player:get_name()) + minetest.log("action", "mumble context "..serverinfo.ip..":"..serverinfo.port) + timer = 0 + end local player_pos = player:get_pos() or {x=0, y=0, z=0} local player_look = {x=0, y=0, z=0} local camera_pos = {x=0, y=0, z=0} local camera_look = {x=0, y=0, z=0} if minetest.camera then camera_pos = minetest.camera:get_pos() - camera_pos.x = (camera_pos.x/10) - camera_pos.y = (camera_pos.y/10) - camera_pos.z = (camera_pos.z/10) + --before Minetest 5.2.0 camera positions were 10x player position. + if minetestversion <= 520 then + camera_pos.x = (camera_pos.x/10) + camera_pos.y = (camera_pos.y/10) + camera_pos.z = (camera_pos.z/10) + end camera_look = minetest.camera:get_look_dir() player_look = camera_look end