Automaticaly detect best timesource available

This commit is contained in:
sapier 2013-08-18 10:57:12 +02:00
parent d577c66bf7
commit b08a9fe60d
2 changed files with 24 additions and 9 deletions

View File

@ -40,6 +40,8 @@ mobf_rtd = {
registred_mob = {}, registred_mob = {},
--!registred mobs_data --!registred mobs_data
registred_mob_data = {}, registred_mob_data = {},
--!timesource
timesource = "os.clock() (10ms ONLY!)",
} }
--!path of mod --!path of mod
@ -136,6 +138,26 @@ end
--! @brief main initialization function --! @brief main initialization function
function mobf_init_framework() function mobf_init_framework()
--try to get timesource with best accuracy
if type(minetest.get_us_time) == "function" then
mobf_get_time_ms = function()
return minetest.get_us_time() / 1000
end
mobf_rtd.timesource = "minetest.get_us_time()"
else
if socket == nil then
local status, module = pcall(require, 'socket')
if status and type(module.gettime) == "function" then
mobf_get_time_ms = function()
return socket.gettime()*1000
end
mobf_rtd.timesource = "socket.gettime()"
end
end
end
minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing mob framework") minetest.log(LOGLEVEL_NOTICE,"MOBF: Initializing mob framework")
mobf_init_basic_tools() mobf_init_basic_tools()

View File

@ -19,10 +19,6 @@
--! @ingroup framework_int --! @ingroup framework_int
--! @{ --! @{
if minetest.world_setting_get("mobf_enable_socket_time") then
require "socket"
end
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
-- name: mobf_get_time_ms() -- name: mobf_get_time_ms()
-- --
@ -31,11 +27,8 @@ end
--! @return current time in ms --! @return current time in ms
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
function mobf_get_time_ms() function mobf_get_time_ms()
if minetest.world_setting_get("mobf_enable_socket_time") then --this fct is overwritten on init with best timesource available atm
return socket.gettime()*1000 return os.clock() * 1000
else
return os.clock()*1000
end
end end
------------------------------------------------------------------------------- -------------------------------------------------------------------------------