Add staticdata parameter to add_entity (#5009)
authorRui <rui.minetest@gmail.com>
Mon, 9 Jan 2017 19:39:45 +0000 (04:39 +0900)
committerNer'zhul <nerzhul@users.noreply.github.com>
Mon, 9 Jan 2017 19:39:45 +0000 (20:39 +0100)
* Add staticdata parameter to add_entity
* Add add_entity_with_staticdata to core.features

builtin/game/features.lua
doc/lua_api.txt
src/script/lua_api/l_env.cpp

index 2aad458da04b19eefb3e231b7717c8521fa3ae41..646b254ea20a66ae69f4d0ca89e4a31ee643ab2b 100644 (file)
@@ -9,6 +9,7 @@ core.features = {
        no_legacy_abms = true,
        texture_names_parens = true,
        area_store_custom_ids = true,
+       add_entity_with_staticdata = true,
 }
 
 function core.has_feature(arg)
index d05db9d4966f0159cba9a64c611fc5ef62595bce..fc0f8e1fc80f6073eb12fa17565c79c1fe85bcf3 100644 (file)
@@ -2173,7 +2173,7 @@ and `minetest.auth_reload` call the authetification handler.
 * `minetest.get_node_timer(pos)`
     * Get `NodeTimerRef`
 
-* `minetest.add_entity(pos, name)`: Spawn Lua-defined entity at position
+* `minetest.add_entity(pos, name, [staticdata])`: Spawn Lua-defined entity at position
     * Returns `ObjectRef`, or `nil` if failed
 * `minetest.add_item(pos, item)`: Spawn item
     * Returns `ObjectRef`, or `nil` if failed
index 68d10308c9ba14f132b0a6a87b29e82317cd9eba..3d9db79172926844beb49d73b6a70eb10b74d3a4 100644 (file)
@@ -440,7 +440,7 @@ int ModApiEnvMod::l_get_node_timer(lua_State *L)
        return 1;
 }
 
-// add_entity(pos, entityname) -> ObjectRef or nil
+// add_entity(pos, entityname, [staticdata]) -> ObjectRef or nil
 // pos = {x=num, y=num, z=num}
 int ModApiEnvMod::l_add_entity(lua_State *L)
 {
@@ -450,8 +450,10 @@ int ModApiEnvMod::l_add_entity(lua_State *L)
        v3f pos = checkFloatPos(L, 1);
        // content
        const char *name = luaL_checkstring(L, 2);
+       // staticdata
+       const char *staticdata = luaL_optstring(L, 3, "");
        // Do it
-       ServerActiveObject *obj = new LuaEntitySAO(env, pos, name, "");
+       ServerActiveObject *obj = new LuaEntitySAO(env, pos, name, staticdata);
        int objectid = env->addActiveObject(obj);
        // If failed to add, return nothing (reads as nil)
        if(objectid == 0)