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;