From e357a2278400ae88c1a9968bc29573a014d0263f Mon Sep 17 00:00:00 2001 From: fgenesis Date: Sat, 7 May 2022 02:47:59 +0200 Subject: [PATCH] another temp commit --- Aquaria/ScriptInterface.cpp | 52 +++++++++++++++++++++++++++++++++++-- BBGE/QuadGrid.cpp | 1 + BBGE/QuadGrid.h | 1 + 3 files changed, 52 insertions(+), 2 deletions(-) diff --git a/Aquaria/ScriptInterface.cpp b/Aquaria/ScriptInterface.cpp index f557034..6e66897 100644 --- a/Aquaria/ScriptInterface.cpp +++ b/Aquaria/ScriptInterface.cpp @@ -9566,6 +9566,8 @@ luaFunc(createQuadGrid) luaFunc(quadgrid_numPoints) { QuadGrid *q = getQuadGrid(L); + if(!q) + luaReturnNil(); lua_pushinteger(L, q->pointsX()); lua_pushinteger(L, q->pointsY()); return 2; @@ -9574,6 +9576,8 @@ luaFunc(quadgrid_numPoints) luaFunc(quadgrid_setPoint) { QuadGrid *q = getQuadGrid(L); + if(!q) + luaReturnNil(); size_t ix = luaL_checkinteger(L, 2); size_t iy = luaL_checkinteger(L, 3); if(ix < q->pointsX() && iy < q->pointsY()) @@ -9593,9 +9597,44 @@ luaFunc(quadgrid_setPoint) return luaL_error(L, "out of range"); } +luaFunc(quadgrid_texOffset) +{ + QuadGrid *q = getQuadGrid(L); + if(q) + interpolateVec2(L, q->texOffset, 2); + luaReturnNil(); +} -q; -// TODO: interp texOffset, setPauseLevel +luaFunc(quadgrid_getTexOffset) +{ + QuadGrid *q = getQuadGrid(L); + Vector v; + if(q) + v = q->texOffset; + luaReturnVec2(v.x, v.y); +} + +luaFunc(quadgrid_setPauseLevel) +{ + QuadGrid *q = getQuadGrid(L); + if(q) + q->pauseLevel = lua_tointeger(L, 2); + luaReturnNil(); +} + +luaFunc(quadgrid_getPauseLevel) +{ + QuadGrid *q = getQuadGrid(L); + luaReturnInt(q ? q->pauseLevel : 0); +} + +luaFunc(quadgrid_resetUV) +{ + QuadGrid *q = getQuadGrid(L); + if(q) + q->resetUV(); + luaReturnNil(); +} // ---------- Minimap related ------------------ @@ -10841,6 +10880,15 @@ static const struct { luaRegister(loadXMLTable), + luaRegister(createQuadGrid), + luaRegister(quadgrid_numPoints), + luaRegister(quadgrid_setPoint), + luaRegister(quadgrid_texOffset), + luaRegister(quadgrid_getTexOffset), + luaRegister(quadgrid_setPauseLevel), + luaRegister(quadgrid_getPauseLevel), + luaRegister(quadgrid_resetUV), + #undef MK_FUNC #undef MK_ALIAS #define MK_FUNC(base, getter, prefix, suffix) luaRegister(prefix##_##suffix), diff --git a/BBGE/QuadGrid.cpp b/BBGE/QuadGrid.cpp index 1c12bd0..593992a 100644 --- a/BBGE/QuadGrid.cpp +++ b/BBGE/QuadGrid.cpp @@ -8,6 +8,7 @@ QuadGrid::QuadGrid(size_t w, size_t h) { addType(SCO_QUAD_GRID); _points.resize((w+1) * (h+1)); + resetUV(); } QuadGrid* QuadGrid::New(size_t w, size_t h) diff --git a/BBGE/QuadGrid.h b/BBGE/QuadGrid.h index ee21094..0de72ce 100644 --- a/BBGE/QuadGrid.h +++ b/BBGE/QuadGrid.h @@ -46,6 +46,7 @@ public: virtual void onUpdate(float dt); void resetUV(float xmul = 1, float ymul = 1); + void resetPos(float xmul = 1, float ymul = 1); inline size_t quadsX() const { return _w; } inline size_t quadsY() const { return _h; }