mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 05:51:51 +00:00
add precise_utc_time function
This commit is contained in:
parent
4111da1230
commit
dfcc3e913d
3 changed files with 25 additions and 10 deletions
|
|
@ -10,6 +10,9 @@ time.delta() -> number
|
||||||
-- Returns UTC time in seconds
|
-- Returns UTC time in seconds
|
||||||
time.utc_time() -> int
|
time.utc_time() -> int
|
||||||
|
|
||||||
|
-- Returns UTC time in seconds with millisecond precision
|
||||||
|
time.precise_utc_time() -> number
|
||||||
|
|
||||||
-- Returns local (system) time in seconds
|
-- Returns local (system) time in seconds
|
||||||
time.local_time() -> int
|
time.local_time() -> int
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
# Библиотека *time*
|
# Библиотека *time*
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
-- Возвращает время с момента запуска движка в секундах и милисекундах.
|
-- Возвращает время с момента запуска движка в секундах и миллисекундах.
|
||||||
time.uptime() -> number
|
time.uptime() -> number
|
||||||
|
|
||||||
-- Возвращает дельту времени в секундах и милисекундах (время прошедшее с предыдущего кадра)
|
-- Возвращает дельту времени в секундах и миллисекундах (время прошедшее с предыдущего кадра)
|
||||||
time.delta() -> number
|
time.delta() -> number
|
||||||
|
|
||||||
-- Возвращает время UTC в секундах
|
-- Возвращает время UTC (секунды с 1970-01-01 UTC)
|
||||||
time.utc_time() -> int
|
time.utc_time() -> int
|
||||||
|
|
||||||
|
-- Возвращает время UTC (секунды с 1970-01-01 UTC) с точностью до миллисекунд
|
||||||
|
time.precise_utc_time() -> number
|
||||||
|
|
||||||
-- Возвращает локальное (системное) время в секундах
|
-- Возвращает локальное (системное) время в секундах
|
||||||
time.local_time() -> int
|
time.local_time() -> int
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
#include "engine/Engine.hpp"
|
|
||||||
#include "api_lua.hpp"
|
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
|
|
||||||
|
#include "api_lua.hpp"
|
||||||
|
#include "engine/Engine.hpp"
|
||||||
|
|
||||||
using namespace scripting;
|
using namespace scripting;
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
#define USE_MSVC_TIME_SAFE
|
#define USE_MSVC_TIME_SAFE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int l_uptime(lua::State* L) {
|
static int l_uptime(lua::State* L) {
|
||||||
|
|
@ -20,11 +21,18 @@ static int l_utc_time(lua::State* L) {
|
||||||
return lua::pushnumber(L, std::time(nullptr));
|
return lua::pushnumber(L, std::time(nullptr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int l_precise_utc_time(lua::State* L) {
|
||||||
|
auto now = std::chrono::system_clock::now();
|
||||||
|
return lua::pushnumber(
|
||||||
|
L, std::chrono::duration<double>(now.time_since_epoch()).count()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
static int l_local_time(lua::State* L) {
|
static int l_local_time(lua::State* L) {
|
||||||
std::time_t t = std::time(nullptr);
|
std::time_t t = std::time(nullptr);
|
||||||
|
|
||||||
std::tm gmt_tm{};
|
std::tm gmt_tm {};
|
||||||
std::tm local_tm{};
|
std::tm local_tm {};
|
||||||
|
|
||||||
#if defined(USE_MSVC_TIME_SAFE)
|
#if defined(USE_MSVC_TIME_SAFE)
|
||||||
gmtime_s(&gmt_tm, &t);
|
gmtime_s(&gmt_tm, &t);
|
||||||
|
|
@ -44,8 +52,8 @@ static int l_local_time(lua::State* L) {
|
||||||
static int l_utc_offset(lua::State* L) {
|
static int l_utc_offset(lua::State* L) {
|
||||||
std::time_t t = std::time(nullptr);
|
std::time_t t = std::time(nullptr);
|
||||||
|
|
||||||
std::tm gmt_tm{};
|
std::tm gmt_tm {};
|
||||||
std::tm local_tm{};
|
std::tm local_tm {};
|
||||||
|
|
||||||
#if defined(USE_MSVC_TIME_SAFE)
|
#if defined(USE_MSVC_TIME_SAFE)
|
||||||
gmtime_s(&gmt_tm, &t);
|
gmtime_s(&gmt_tm, &t);
|
||||||
|
|
@ -74,6 +82,7 @@ const luaL_Reg timelib[] = {
|
||||||
{"uptime", lua::wrap<l_uptime>},
|
{"uptime", lua::wrap<l_uptime>},
|
||||||
{"delta", lua::wrap<l_delta>},
|
{"delta", lua::wrap<l_delta>},
|
||||||
{"utc_time", lua::wrap<l_utc_time>},
|
{"utc_time", lua::wrap<l_utc_time>},
|
||||||
|
{"precise_utc_time", lua::wrap<l_precise_utc_time>},
|
||||||
{"utc_offset", lua::wrap<l_utc_offset>},
|
{"utc_offset", lua::wrap<l_utc_offset>},
|
||||||
{"local_time", lua::wrap<l_local_time>},
|
{"local_time", lua::wrap<l_local_time>},
|
||||||
{"precise_time", lua::wrap<l_precise_time>},
|
{"precise_time", lua::wrap<l_precise_time>},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue