summaryrefslogtreecommitdiff
path: root/src/script/cpp_api
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-01-22 11:17:41 +0100
committerLoïc Blot <nerzhul@users.noreply.github.com>2017-03-13 23:56:05 +0100
commit2c19d51409ca903021e0b508e5bc15299c4e51dc (patch)
tree8df932580abc289160aadbc40487099fd033c7d8 /src/script/cpp_api
parentd7bc346981e189851e490f2417ed015a38bca79b (diff)
downloadminetest-2c19d51409ca903021e0b508e5bc15299c4e51dc.tar.gz
minetest-2c19d51409ca903021e0b508e5bc15299c4e51dc.tar.bz2
minetest-2c19d51409ca903021e0b508e5bc15299c4e51dc.zip
[CSM] sound_play & sound_stop support + client_lua_api doc (#5096)
* squashed: CSM: Implement register_globalstep * Re-use fatal error mechanism from server to disconnect client on CSM error * Little client functions cleanups * squashed: CSM: add core.after function * core.after is shared code between client & server * ModApiUtil get_us_time feature enabled for client
Diffstat (limited to 'src/script/cpp_api')
-rw-r--r--src/script/cpp_api/s_client.cpp18
-rw-r--r--src/script/cpp_api/s_client.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/src/script/cpp_api/s_client.cpp b/src/script/cpp_api/s_client.cpp
index f0676f4c2..ce88d67e3 100644
--- a/src/script/cpp_api/s_client.cpp
+++ b/src/script/cpp_api/s_client.cpp
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "s_client.h"
#include "s_internal.h"
+#include "client.h"
void ScriptApiClient::on_shutdown()
{
@@ -94,3 +95,20 @@ void ScriptApiClient::on_death()
// Call callbacks
runCallbacks(0, RUN_CALLBACKS_MODE_FIRST);
}
+
+void ScriptApiClient::environment_step(float dtime)
+{
+ SCRIPTAPI_PRECHECKHEADER
+
+ // Get core.registered_globalsteps
+ lua_getglobal(L, "core");
+ lua_getfield(L, -1, "registered_globalsteps");
+ // Call callbacks
+ lua_pushnumber(L, dtime);
+ try {
+ runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
+ } catch (LuaError &e) {
+ getClient()->setFatalError(std::string("Client environment_step: ") + e.what() + "\n"
+ + script_get_backtrace(L));
+ }
+}
diff --git a/src/script/cpp_api/s_client.h b/src/script/cpp_api/s_client.h
index 3155c7e67..3d373f97c 100644
--- a/src/script/cpp_api/s_client.h
+++ b/src/script/cpp_api/s_client.h
@@ -36,5 +36,7 @@ public:
void on_damage_taken(int32_t damage_amount);
void on_hp_modification(int32_t newhp);
void on_death();
+
+ void environment_step(float dtime);
};
#endif