From 23b7d2cb98431f0c1ce50e5ec3615561b1ace8e9 Mon Sep 17 00:00:00 2001 From: proller Date: Sun, 27 Oct 2024 02:40:52 +0100 Subject: [PATCH 1/4] wip --- src/client/fm_far_container.cpp | 6 +++--- src/client/fm_farmesh.cpp | 3 ++- src/fm_world_merge.cpp | 6 ++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/client/fm_far_container.cpp b/src/client/fm_far_container.cpp index 8d83266f1..bc328122d 100644 --- a/src/client/fm_far_container.cpp +++ b/src/client/fm_far_container.cpp @@ -25,7 +25,8 @@ const MapNode &FarContainer::getNodeRefUnsafe(const v3pos_t &pos) const auto step = getFarStep(m_client->getEnv().getClientMap().getControl(), getNodeBlockPos(m_client->getEnv().getClientMap().far_blocks_last_cam_pos), bpos); - const auto &shift = step; // + cell_size_pow; + //const auto &shift = step; // + cell_size_pow; + //const v3bpos_t bpos_aligned((bpos.X >> shift) << shift, (bpos.Y >> shift) << shift, (bpos.Z >> shift) << shift); const v3bpos_t bpos_aligned = getFarActual(bpos, getNodeBlockPos(m_client->getEnv().getClientMap().far_blocks_last_cam_pos), step, m_client->getEnv().getClientMap().getControl()); @@ -38,7 +39,6 @@ const MapNode &FarContainer::getNodeRefUnsafe(const v3pos_t &pos) if (!block && step < FARMESH_STEP_MAX) { const auto &storage = m_client->getEnv().getClientMap().far_blocks_storage[step]; - block = storage.get(bpos_aligned); } @@ -87,7 +87,7 @@ const MapNode &FarContainer::getNodeRefUnsafe(const v3pos_t &pos) if (block) { v3pos_t relpos = pos - bpos_aligned * MAP_BLOCKSIZE; - const auto &relpos_shift = step; // + 1; + const auto &relpos_shift = step; const auto relpos_shifted = v3pos_t(relpos.X >> relpos_shift, relpos.Y >> relpos_shift, relpos.Z >> relpos_shift); const auto &n = block->getNodeNoLock(relpos_shifted); diff --git a/src/client/fm_farmesh.cpp b/src/client/fm_farmesh.cpp index 2e7eaf391..a58f61330 100644 --- a/src/client/fm_farmesh.cpp +++ b/src/client/fm_farmesh.cpp @@ -83,6 +83,7 @@ void FarMesh::makeFarBlock(const v3bpos_t &blockpos, block_step_t step, bool nea block->far_iteration = far_iteration_complete; return; } + MapBlockP block; { const auto lock = far_blocks.lock_unique_rec(); @@ -103,7 +104,7 @@ void FarMesh::makeFarBlock(const v3bpos_t &blockpos, block_step_t step, bool nea } } } - + block->far_iteration = far_iteration_complete; if (m_client->m_uptime >= block->far_make_mesh_timestamp) { diff --git a/src/fm_world_merge.cpp b/src/fm_world_merge.cpp index e739e59b1..90d3a80bb 100644 --- a/src/fm_world_merge.cpp +++ b/src/fm_world_merge.cpp @@ -120,13 +120,14 @@ void WorldMerger::merge_one_block(MapDatabase *dbase, MapDatabase *dbase_up, for (pos_t y = 0; y < block_size; ++y) for (pos_t z = 0; z < block_size; ++z) { const v3pos_t npos(x, y, z); - const v3pos_t bbpos(x >> (4 - step_pow), y >> (4 - step_pow), - z >> (4 - step_pow)); + const v3pos_t bbpos(x >> (MAP_BLOCKP - step_pow), + y >> (MAP_BLOCKP - step_pow), z >> (MAP_BLOCKP - step_pow)); const auto &block = blocks[bbpos]; if (!block) { continue; } + const v3pos_t lpos((x << step_pow) % MAP_BLOCKSIZE, (y << step_pow) % MAP_BLOCKSIZE, (z << step_pow) % MAP_BLOCKSIZE); @@ -394,6 +395,7 @@ bool WorldMerger::add_changed(const v3bpos_t &bpos) changed_blocks_for_merge.clear(); return true; } + void WorldMerger::init() { m_map_compression_level = From 080953c1437fa1ba828f71166fb54a66d80dd4f4 Mon Sep 17 00:00:00 2001 From: proller Date: Mon, 28 Oct 2024 15:27:39 +0100 Subject: [PATCH 2/4] fix liquid light --- src/map.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/map.cpp b/src/map.cpp index dc0d6623e..1556d5aa7 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -868,9 +868,11 @@ size_t ServerMap::transformLiquids(std::map &modified_block } // Ignore light (because calling voxalgo::update_lighting_nodes) +/* ContentLightingFlags f0 = m_nodedef->getLightingFlags(n0); n0.setLight(LIGHTBANK_DAY, 0, f0); n0.setLight(LIGHTBANK_NIGHT, 0, f0); +*/ // Find out whether there is a suspect for this action std::string suspect; From b15513424a8786dad06ddd26c0fd4c165830ce76 Mon Sep 17 00:00:00 2001 From: proller Date: Thu, 14 Nov 2024 21:49:11 +0000 Subject: [PATCH 3/4] fix --- src/server/activeobjectmgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/activeobjectmgr.cpp b/src/server/activeobjectmgr.cpp index 3e55fcb8b..1807a3e47 100644 --- a/src/server/activeobjectmgr.cpp +++ b/src/server/activeobjectmgr.cpp @@ -301,7 +301,7 @@ void ActiveObjectMgr::getAddedActiveObjectsAroundPos(const v3f &player_pos, f32 added_objects.push(id); - if (++count > 10) + if (++count > 10 && !current_objects.empty()) break; } From f663144450cd3114dc5e5a506e2fe4f965caa883 Mon Sep 17 00:00:00 2001 From: proller Date: Fri, 15 Nov 2024 02:44:35 +0000 Subject: [PATCH 4/4] fix --- src/serverlist.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 5ad6afe25..74999a22c 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -111,10 +111,8 @@ Json::Value MakeReport(AnnounceAction action, server["damage"] = g_settings->getBool("enable_damage"); server["password"] = g_settings->getBool("disallow_empty_password"); server["pvp"] = g_settings->getBool("enable_pvp"); - if (uptime >= 1) - server["uptime"] = (int) uptime; - if (game_time >= 1) - server["game_time"]= game_time; + server["uptime"] = (int) uptime; + server["game_time"]= game_time; server["clients"] = (int) clients_names.size(); server["clients_max"] = g_settings->getU16("max_users"); server["clients_list"] = Json::Value(Json::arrayValue);