From 2f729bd3cbb793f20c5e060a75e38a18d0d88d0f Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 31 May 2026 22:49:47 +0300 Subject: [PATCH 1/6] fix serialization error for specific types --- src/logic/scripting/lua/lua_util.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/logic/scripting/lua/lua_util.cpp b/src/logic/scripting/lua/lua_util.cpp index ded9cc79b..219b41c2c 100644 --- a/src/logic/scripting/lua/lua_util.cpp +++ b/src/logic/scripting/lua/lua_util.cpp @@ -76,6 +76,10 @@ int lua::pushwstring(State* L, const std::wstring& str) { return pushstring(L, util::wstr2str_utf8(str)); } +static std::string to_ptr_string(State* L, int idx) { + return std::to_string(reinterpret_cast(lua_topointer(L, idx))); +} + dv::value lua::tovalue(State* L, int idx) { using dv::value_type; auto type = lua::type(L, idx); @@ -95,11 +99,13 @@ dv::value lua::tovalue(State* L, int idx) { } } case LUA_TFUNCTION: - return "(lua_topointer(L, idx)) - ) + - ">"; + return ""; + case LUA_TTHREAD: + return ""; + case LUA_TUSERDATA: + return ""; + case LUA_TLIGHTUSERDATA: + return ""; case LUA_TSTRING: return std::string(tostring(L, idx)); case LUA_TTABLE: { From 1300488a8225589ffe9d21d5ad60694f66962765 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 31 May 2026 22:57:31 +0300 Subject: [PATCH 2/6] update userdata serialization --- src/logic/scripting/lua/lua_util.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/logic/scripting/lua/lua_util.cpp b/src/logic/scripting/lua/lua_util.cpp index 219b41c2c..a674535db 100644 --- a/src/logic/scripting/lua/lua_util.cpp +++ b/src/logic/scripting/lua/lua_util.cpp @@ -103,6 +103,9 @@ dv::value lua::tovalue(State* L, int idx) { case LUA_TTHREAD: return ""; case LUA_TUSERDATA: + if (auto userdata = touserdata(L, idx)) { + return "getTypeName() + " " + to_ptr_string(L, idx) + ">"; + } return ""; case LUA_TLIGHTUSERDATA: return ""; From 38bebac37ee2a290315c3148576e98c825efa46d Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 1 Jun 2026 00:08:13 +0300 Subject: [PATCH 3/6] fix vcm texture sides --- src/coders/vcm.cpp | 12 ++++++------ src/graphics/commons/Model.cpp | 24 ++++++++++++------------ src/graphics/ui/elements/ModelViewer.cpp | 10 +++++----- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/coders/vcm.cpp b/src/coders/vcm.cpp index 308fb8462..3083e1d36 100644 --- a/src/coders/vcm.cpp +++ b/src/coders/vcm.cpp @@ -55,12 +55,12 @@ model::Model VcmModel::squashed() const { } static const std::unordered_map side_indices { - {"north", 0}, - {"south", 1}, - {"top", 2}, - {"bottom", 3}, - {"west", 4}, - {"east", 5}, + {"east", 0}, + {"west", 1}, + {"bottom", 2}, + {"top", 3}, + {"south", 4}, + {"north", 5}, }; static bool to_boolean(const xml::Attribute& attr) { diff --git a/src/graphics/commons/Model.cpp b/src/graphics/commons/Model.cpp index 2de10ad30..8c2194775 100644 --- a/src/graphics/commons/Model.cpp +++ b/src/graphics/commons/Model.cpp @@ -136,18 +136,18 @@ void Mesh::addBox( const bool enabledSides[6], const glm::mat4& transform ) { - if (enabledSides[0]) // north - addPlane(pos+Z*size, X*size, Y*size, Z, uvs[0], transform); - if (enabledSides[1]) // south - addPlane(pos-Z*size, -X*size, Y*size, -Z, uvs[1], transform); - if (enabledSides[2]) // top - addPlane(pos+Y*size, X*size, -Z*size, Y, uvs[2] * glm::vec2(-1), transform); - if (enabledSides[3]) // bottom - addPlane(pos-Y*size, X*size, Z*size, -Y, uvs[3] * glm::vec2(-1, 1), transform); - if (enabledSides[4]) // west - addPlane(pos+X*size, -Z*size, Y*size, X, uvs[4], transform); - if (enabledSides[5]) // east - addPlane(pos-X*size, Z*size, Y*size, -X, uvs[5] * glm::vec2(-1, 1), transform); + if (enabledSides[0]) // east + addPlane(pos-X*size, Z*size, Y*size, -X, uvs[0], transform); + if (enabledSides[1]) // west + addPlane(pos+X*size, -Z*size, Y*size, X, uvs[1] * glm::vec2(-1, 1), transform); + if (enabledSides[2]) // bottom + addPlane(pos-Y*size, X*size, Z*size, -Y, uvs[2], transform); + if (enabledSides[3]) // top + addPlane(pos+Y*size, X*size, -Z*size, Y, uvs[3] * glm::vec2(-1, 1), transform); + if (enabledSides[4]) // south + addPlane(pos-Z*size, -X*size, Y*size, -Z, uvs[4], transform); + if (enabledSides[5]) // north + addPlane(pos+Z*size, X*size, Y*size, Z, uvs[5] * glm::vec2(-1, 1), transform); } void Mesh::scale(const glm::vec3& size) { diff --git a/src/graphics/ui/elements/ModelViewer.cpp b/src/graphics/ui/elements/ModelViewer.cpp index c1d736d71..727110f8b 100644 --- a/src/graphics/ui/elements/ModelViewer.cpp +++ b/src/graphics/ui/elements/ModelViewer.cpp @@ -83,12 +83,12 @@ static util::TextureRegion determine_texture_region( const Assets& assets, const std::string& texture ) { static std::array faces { - "blocks:dbg_north", - "blocks:dbg_south", - "blocks:dbg_top", - "blocks:dbg_bottom", - "blocks:dbg_west", "blocks:dbg_east", + "blocks:dbg_west", + "blocks:dbg_bottom", + "blocks:dbg_top", + "blocks:dbg_south", + "blocks:dbg_north", }; if (texture.length() < 2 || texture.at(0) != '$') { From ce189c810d13512225b82933724603781a1ecef1 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 1 Jun 2026 01:38:06 +0300 Subject: [PATCH 4/6] fix: app.reconfig_packs attempts to remove indices in generator test mode --- src/logic/EngineController.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/logic/EngineController.cpp b/src/logic/EngineController.cpp index 9231ffe67..c3d775919 100644 --- a/src/logic/EngineController.cpp +++ b/src/logic/EngineController.cpp @@ -378,8 +378,11 @@ void EngineController::reconfigPacks( auto& manager = contentControl.scan(); reconfig_packs_inside(manager, names, packsToAdd, packsToRemove); + const auto& settings = engine.getSettings(); auto& wfile = *world->wfile; - wfile.removeIndices(packsToRemove); + if (!settings.debug.generatorTestMode.get()) { + wfile.removeIndices(packsToRemove); + } wfile.writePacks(manager.getAll(names)); reopenWorld(world); } From d69716ed11369cc3ccacefb90361c8203cf99389 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 3 Jun 2026 19:00:40 +0300 Subject: [PATCH 5/6] fix this something --- src/graphics/core/Mesh.inl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graphics/core/Mesh.inl b/src/graphics/core/Mesh.inl index c4cec9669..913da2bce 100644 --- a/src/graphics/core/Mesh.inl +++ b/src/graphics/core/Mesh.inl @@ -73,7 +73,7 @@ Mesh::~Mesh() { MeshStats::meshesCount--; glDeleteVertexArrays(1, &vao); glDeleteBuffers(1, &vbo); - for (int i = ibos.size() - 1; i >= 0; i--) { + for (int i = 0; i < ibos.size(); i++) { glDeleteBuffers(1, &ibos[i].ibo); } } @@ -98,7 +98,7 @@ void Mesh::reload( glBufferData(GL_ARRAY_BUFFER, 0, {}, GL_STREAM_DRAW); } - for (int i = indices.size(); i < ibos.size(); i++) { + for (int i = 0; i < ibos.size(); i++) { glDeleteBuffers(1, &ibos[i].ibo); } ibos.clear(); From fd6a6e731106a0cc316df0dca55a8c308631a72c Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 3 Jun 2026 19:12:46 +0300 Subject: [PATCH 6/6] fix build warning --- src/audio/AL/ALAudio.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audio/AL/ALAudio.cpp b/src/audio/AL/ALAudio.cpp index 527fc7c71..d681d15a2 100644 --- a/src/audio/AL/ALAudio.cpp +++ b/src/audio/AL/ALAudio.cpp @@ -711,7 +711,7 @@ std::unique_ptr ALAudio::create(const AudioSettings& settings) { return nullptr; } bool effects = true; - ALint attribs[4] {}; + [[maybe_unused]] ALint attribs[4] {}; if (alcIsExtensionPresent(device, "ALC_EXT_EFX") == AL_TRUE) { logger.info() << "AL effects extension present"; attribs[0] = ALC_MAX_AUXILIARY_SENDS;