add particles.stop(...)

This commit is contained in:
MihailRis
2024-11-04 14:55:35 +03:00
parent 0cd5136fdb
commit 3ecb7b447f
4 changed files with 16 additions and 10 deletions
-4
View File
@@ -535,10 +535,6 @@ void WorldRenderer::drawBorders(
lineBatch->flush();
}
void WorldRenderer::addEmitter(std::unique_ptr<Emitter> emitter) {
particles->add(std::move(emitter));
}
void WorldRenderer::clear() {
renderer->clear();
}
+4 -3
View File
@@ -8,6 +8,8 @@
#include <glm/glm.hpp>
#include "typedefs.hpp"
class Level;
class Player;
class Camera;
@@ -42,7 +44,6 @@ class WorldRenderer {
std::unique_ptr<Skybox> skybox;
std::unique_ptr<Batch3D> batch3d;
std::unique_ptr<ModelBatch> modelBatch;
std::unique_ptr<ParticlesRenderer> particles;
float timer = 0.0f;
@@ -80,6 +81,8 @@ class WorldRenderer {
float fogFactor
);
public:
std::unique_ptr<ParticlesRenderer> particles;
static bool showChunkBorders;
static bool showEntitiesDebug;
@@ -108,7 +111,5 @@ public:
bool pause
);
void addEmitter(std::unique_ptr<Emitter> emitter);
void clear();
};
+10 -1
View File
@@ -2,6 +2,7 @@
#include "logic/scripting/scripting_hud.hpp"
#include "graphics/render/WorldRenderer.hpp"
#include "graphics/render/ParticlesRenderer.hpp"
#include "graphics/render/Emitter.hpp"
#include "assets/assets_util.hpp"
#include "engine.hpp"
@@ -34,11 +35,19 @@ static int l_emit(lua::State* L) {
region.region,
count
);
renderer->addEmitter(std::move(emitter));
return lua::pushinteger(L, renderer->particles->add(std::move(emitter)));
}
static int l_stop(lua::State* L) {
u64id_t id = lua::touinteger(L, 1);
if (auto emitter = renderer->particles->getEmitter(id)) {
emitter->stop();
}
return 0;
}
const luaL_Reg particleslib[] = {
{"emit", lua::wrap<l_emit>},
{"stop", lua::wrap<l_stop>},
{NULL, NULL}
};