From ea8d6d7abd86b33169b8c2b80cd382d82ba84b8b Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sat, 12 Nov 2011 03:21:40 +0200 Subject: Scripting WIP --- src/scriptapi.cpp | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 83 insertions(+), 5 deletions(-) (limited to 'src/scriptapi.cpp') diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index 2704f6c43..3c39da6ad 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -606,16 +606,24 @@ void scriptapi_luaentity_add(lua_State *L, u16 id, const char *name, luaL_typerror(L, -1, "ObjectRef"); lua_setfield(L, -2, "object"); - // Get minetest.luaentities table + // minetest.luaentities[id] = object lua_getglobal(L, "minetest"); lua_getfield(L, -1, "luaentities"); luaL_checktype(L, -1, LUA_TTABLE); - int luaentities = lua_gettop(L); - - // luaentities[id] = object lua_pushnumber(L, id); // Push id lua_pushvalue(L, object); // Copy object to top of stack - lua_settable(L, luaentities); + lua_settable(L, -3); + + // This callback doesn't really make sense + /*// Get on_activate function + lua_pushvalue(L, object); + lua_getfield(L, -1, "on_activate"); + luaL_checktype(L, -1, LUA_TFUNCTION); + lua_pushvalue(L, object); // self + // Call with 1 arguments, 0 results + if(lua_pcall(L, 1, 0, 0)) + script_error(L, "error running function %s:on_activate: %s\n", + name, lua_tostring(L, -1));*/ } void scriptapi_luaentity_rm(lua_State *L, u16 id) @@ -659,6 +667,76 @@ std::string scriptapi_luaentity_get_state(lua_State *L, u16 id) return ""; } +LuaEntityProperties scriptapi_luaentity_get_properties(lua_State *L, u16 id) +{ + realitycheck(L); + assert(lua_checkstack(L, 20)); + infostream<<"scriptapi_luaentity_get_properties: id="<