From cd3e615ad3654d99580513ac94e3651426980cb1 Mon Sep 17 00:00:00 2001 From: DrSocalkwe3n Date: Thu, 3 Jul 2025 19:05:34 +0600 Subject: [PATCH] * --- Src/Server/World.cpp | 16 ++++++++++------ Src/Server/World.hpp | 16 +++++++++++----- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/Src/Server/World.cpp b/Src/Server/World.cpp index a0c965a..adcb1ae 100644 --- a/Src/Server/World.cpp +++ b/Src/Server/World.cpp @@ -18,16 +18,20 @@ void World::onUpdate(GameServer *server, float dtime) { } -void World::onCEC_RegionsEnter(ContentEventController *cec, const std::vector &enter) { +std::vector World::onCEC_RegionsEnter(ContentEventController *cec, const std::vector &enter) { + std::vector out; + for(const Pos::GlobalRegion &pos : enter) { - std::unique_ptr ®ion = Regions[pos]; - if(!region) { - region = std::make_unique(); - NeedToLoad.push_back(pos); + auto iterRegion = Regions.find(pos); + if(iterRegion == Regions.end()) { + out.push_back(pos); } - region->CECs.push_back(cec); + iterRegion->second->CECs.push_back(cec); + // Отправить клиенту информацию о чанках и сущностях } + + return out; } void World::onCEC_RegionsLost(ContentEventController *cec, const std::vector &lost) { diff --git a/Src/Server/World.hpp b/Src/Server/World.hpp index 85a1353..7aedc93 100644 --- a/Src/Server/World.hpp +++ b/Src/Server/World.hpp @@ -144,14 +144,10 @@ public: World(DefWorldId_t defId); ~World(); - /* - Обновить регионы - */ - void onUpdate(GameServer *server, float dtime); - /* Подписывает игрока на отслеживаемые им регионы Возвращает список не загруженных регионов, на которые соответственно игрока не получилось подписать + При подписи происходит отправка всех чанков и сущностей региона */ std::vector onCEC_RegionsEnter(ContentEventController *cec, const std::vector &enter); void onCEC_RegionsLost(ContentEventController *cec, const std::vector &lost); @@ -168,6 +164,16 @@ public: }; void pushRegions(std::vector>); + + /* + Проверка использования регионов, + */ + void onUpdate(GameServer *server, float dtime); + + /* + + */ + DefWorldId_t getDefId() const { return DefId; } };