From 51f5259de39c1f45a9a3ffedd51389988e27aeaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Tue, 4 Feb 2025 08:23:25 +0100 Subject: [PATCH] Make gravity mask accessible from Lua --- src/lua/LuaSimulation.cpp | 9 +++++++++ src/simulation/Simulation.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lua/LuaSimulation.cpp b/src/lua/LuaSimulation.cpp index f3ed5480a..5cd471672 100644 --- a/src/lua/LuaSimulation.cpp +++ b/src/lua/LuaSimulation.cpp @@ -206,6 +206,14 @@ static int gravityMass(lua_State *L) }); } +static int gravityMask(lua_State *L) +{ + auto *lsi = GetLSI(); + return LuaBlockMap(L, [lsi](Vec2 p) -> uint32_t & { + return lsi->sim->gravIn.mask[p]; + }); +} + static int gravityField(lua_State *L) { auto *lsi = GetLSI(); @@ -1931,6 +1939,7 @@ void LuaSimulation::Open(lua_State *L) LFUNC(ensureDeterminism), LFUNC(paused), LFUNC(gravityMass), + LFUNC(gravityMask), LFUNC(gravityField), LFUNC(resetSpark), LFUNC(resetVelocity), diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 187ae812f..9575a9d0f 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -3595,7 +3595,7 @@ void Simulation::BeforeSim() air->update_airh(); DispatchNewtonianGravity(); - // gravIn is now potentially garbage, which is ok, we were going to clear it for the frame anyway + // gravIn::mass is now potentially garbage, which is ok, we were going to clear it for the frame anyway for (auto p : gravIn.mass.Size().OriginRect()) { gravIn.mass[p] = 0.f;