]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Add minetest.registered_items and minetest.registered_nodes (Doesn't do anything...
authorElias Fleckenstein <eliasfleckenstein@web.de>
Thu, 7 Jan 2021 09:45:59 +0000 (10:45 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Thu, 7 Jan 2021 09:45:59 +0000 (10:45 +0100)
builtin/client/register.lua
src/script/cpp_api/s_client.cpp
src/script/cpp_api/s_client.h

index de5d899099a32a4ae1ebfb597b6ec23140e34839..2b5526523f486052a407505cf0d6388ff07afb88 100644 (file)
@@ -105,3 +105,6 @@ core.registered_on_inventory_open, core.register_on_inventory_open = make_regist
 core.registered_on_recieve_physics_override, core.register_on_recieve_physics_override = make_registration()
 core.registered_on_play_sound, core.register_on_play_sound = make_registration()
 core.registered_on_spawn_particle, core.register_on_spawn_particle = make_registration()
+
+core.registered_nodes = {}
+core.registered_items = {}
index 200a449eedda2a7568a0ab0dde531583b01ae96f..b90decfb59276f1ecc46334c23e0071677d5df59 100644 (file)
@@ -18,6 +18,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
+#include "nodedef.h"
+#include "itemdef.h"
 #include "s_client.h"
 #include "s_internal.h"
 #include "client/client.h"
@@ -317,6 +319,28 @@ void ScriptApiClient::open_enderchest()
                lua_pcall(L, 0, 0, error_handler);
 }
 
+void ScriptApiClient::set_node_def(const ContentFeatures &f)
+{
+       SCRIPTAPI_PRECHECKHEADER
+       
+       lua_getglobal(L, "core");
+       lua_getfield(L, -1, "registered_nodes");
+       
+       push_content_features(L, f);
+       lua_setfield(L, -2, f.name.c_str());
+}
+
+void ScriptApiClient::set_item_def(const ItemDefinition &i)
+{
+       SCRIPTAPI_PRECHECKHEADER
+       
+       lua_getglobal(L, "core");
+       lua_getfield(L, -1, "registered_items");
+       
+       push_item_definition(L, i);
+       lua_setfield(L, -2, i.name.c_str());
+}
+
 void ScriptApiClient::setEnv(ClientEnvironment *env)
 {
        ScriptApiBase::setEnv(env);
index 26fa7abea4b29ff45c638ce01d7302c9d4ce0ad3..cf8294d7fedaa7e6644d96f4dbdc1204e5c83e27 100644 (file)
@@ -66,6 +66,9 @@ class ScriptApiClient : virtual public ScriptApiBase
 
        bool on_inventory_open(Inventory *inventory);
        void open_enderchest();
+       
+       void set_node_def(const ContentFeatures &f);
+       void set_item_def(const ItemDefinition &i);
 
        void setEnv(ClientEnvironment *env);
 };