Implement spawning particles with node texture appearance
[oweals/minetest.git] / src / script / lua_api / l_particles_local.cpp
index 9595b2fab5a4b2f953c09f5320873e655b7691f3..cc68b13a58787fc35cfe50415d8099c922d1acc2 100644 (file)
@@ -67,6 +67,13 @@ int ModApiParticlesLocal::l_add_particle(lua_State *L)
        p.texture = getstringfield_default(L, 1, "texture", p.texture);
        p.glow = getintfield_default(L, 1, "glow", p.glow);
 
+       lua_getfield(L, 1, "node");
+       if (lua_istable(L, -1))
+               p.node = readnode(L, -1, getGameDef(L)->ndef());
+       lua_pop(L, 1);
+
+       p.node_tile = getintfield_default(L, 1, "node_tile", p.node_tile);
+
        ClientEvent *event = new ClientEvent();
        event->type           = CE_SPAWN_PARTICLE;
        event->spawn_particle = new ParticleParameters(p);
@@ -134,6 +141,13 @@ int ModApiParticlesLocal::l_add_particlespawner(lua_State *L)
        p.texture = getstringfield_default(L, 1, "texture", p.texture);
        p.glow = getintfield_default(L, 1, "glow", p.glow);
 
+       lua_getfield(L, 1, "node");
+       if (lua_istable(L, -1))
+               p.node = readnode(L, -1, getGameDef(L)->ndef());
+       lua_pop(L, 1);
+
+       p.node_tile = getintfield_default(L, 1, "node_tile", p.node_tile);
+
        u64 id = getClient(L)->getParticleManager()->generateSpawnerId();
 
        auto event = new ClientEvent();