From 803981e2a8c0a64b9bf34a98aac34ba91c939f0b Mon Sep 17 00:00:00 2001 From: REDxEYE Date: Tue, 29 Oct 2024 18:53:22 +0300 Subject: [PATCH] libworld: expose WorldInfo::fog value to lua --- doc/en/scripting/builtins/libworld.md | 6 ++++++ doc/ru/scripting/builtins/libworld.md | 6 ++++++ src/logic/scripting/lua/libs/libworld.cpp | 11 +++++++++++ 3 files changed, 23 insertions(+) diff --git a/doc/en/scripting/builtins/libworld.md b/doc/en/scripting/builtins/libworld.md index afd8c240..c0b8d457 100644 --- a/doc/en/scripting/builtins/libworld.md +++ b/doc/en/scripting/builtins/libworld.md @@ -16,6 +16,12 @@ world.get_day_time() -> number -- Set day time value. world.set_day_time(time: number) +-- Returns current fog value. +world.get_fog() -> number + +-- Set fog value. +world.set_fog(value: number) + -- Sets the specified day time cycle speed. world.set_day_time_speed(value: number) diff --git a/doc/ru/scripting/builtins/libworld.md b/doc/ru/scripting/builtins/libworld.md index 31806de4..c6818bc5 100644 --- a/doc/ru/scripting/builtins/libworld.md +++ b/doc/ru/scripting/builtins/libworld.md @@ -15,6 +15,12 @@ world.get_day_time() -> number -- Устанавливает указанное игровое время. world.set_day_time(time: number) +-- Возвращает текущее значение тумана. +world.get_fog() -> number + +-- Устанавливает указанное значение тумана. +world.set_fog(value: number) + -- Устанавливает указанную скорость смены времени суток. world.set_day_time_speed(value: number) diff --git a/src/logic/scripting/lua/libs/libworld.cpp b/src/logic/scripting/lua/libs/libworld.cpp index 04249299..8330a871 100644 --- a/src/logic/scripting/lua/libs/libworld.cpp +++ b/src/logic/scripting/lua/libs/libworld.cpp @@ -62,6 +62,15 @@ static int l_set_day_time(lua::State* L) { require_world_info().daytime = std::fmod(value, 1.0); return 0; } +static int l_get_fog(lua::State* L) { + return lua::pushnumber(L, require_world_info().fog); +} + +static int l_set_fog(lua::State* L) { + auto value = lua::tonumber(L, 1); + require_world_info().fog = std::fmod(value, 1.0); + return 0; +} static int l_set_day_time_speed(lua::State* L) { auto value = lua::tonumber(L, 1); @@ -102,6 +111,8 @@ const luaL_Reg worldlib[] = { {"get_total_time", lua::wrap}, {"get_day_time", lua::wrap}, {"set_day_time", lua::wrap}, + {"get_fog", lua::wrap}, + {"set_fog", lua::wrap}, {"set_day_time_speed", lua::wrap}, {"get_day_time_speed", lua::wrap}, {"get_seed", lua::wrap},