From 4bb865cbbadac6146cf6eaf868b881edbb6a1912 Mon Sep 17 00:00:00 2001 From: MarcEricMartel <74071476+MarcEricMartel@users.noreply.github.com> Date: Wed, 1 Dec 2021 22:06:47 -0500 Subject: [PATCH] Ajout de RetrieveChunk --- SQCSim2021/define.h | 1 + SQCSim2021/media/chunks/26_85.chunk | Bin 0 -> 32768 bytes SQCSim2021/world.cpp | 18 ++++++++++++++++++ SQCSim2021/world.h | 5 ++++- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 SQCSim2021/media/chunks/26_85.chunk diff --git a/SQCSim2021/define.h b/SQCSim2021/define.h index d12d984..1bd66b8 100644 --- a/SQCSim2021/define.h +++ b/SQCSim2021/define.h @@ -21,6 +21,7 @@ #define FRAMES_RENDER_CHUNKS 2 #define FRAMES_UPDATE_CHUNKS 2 +#define FRAMES_DELETE_CHUNKS 2 #define VIEW_DISTANCE 512 #define MAX_SELECTION_DISTANCE 5 diff --git a/SQCSim2021/media/chunks/26_85.chunk b/SQCSim2021/media/chunks/26_85.chunk new file mode 100644 index 0000000000000000000000000000000000000000..280bcc05bbaa8ab0deb22c34e4fc1b98f5caffcc GIT binary patch literal 32768 zcmZP`1*0J_8UmvsFd71*Aut*OqaiRF0;3@?8UiCU1Q=2M&B%x$fU1BQO`aehP5UT! zGz3ONU=W1>1DadV`DoI^jmv=MUvxe*nmj@N&57z*dC&-5>fT<_Qhbn-pCz%h?0M-xk2oz)GLzIG5faMAD5egvc z3G(3zpz2BH!!*G36XZh`fYgIM1|_iZp-RCjK=K6nND9E}N#-LoK=c#j!xcc)6Xe4b zFhh!6u-`xg7CuZVNE)2}!3-z?vJc7xQ`q>(27u%V@{tsP)f40+6hPDy_m`ye0-3Zq+n#TK>A4LqiLW)_@USU@;}I(FpSQJiPMWlaU3W;qgjk0k0wCv z@IteG&~wp(12cc3`G8P(p(!8sT=ei8_8uPf;AjYphQMeDjE2By2#kinXb6mkz-S1J zhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kin zXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeD zjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk zz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeD&?y7} DJN`=1 literal 0 HcmV?d00001 diff --git a/SQCSim2021/world.cpp b/SQCSim2021/world.cpp index bc22409..e77cdc4 100644 --- a/SQCSim2021/world.cpp +++ b/SQCSim2021/world.cpp @@ -79,3 +79,21 @@ void World::TransposeWorld(Player& player) { player.Transpose(x, y); } +void World::CleanUpWorld(int& frames) { + if (!m_tbDeleted.empty() && !frames) { + m_tbDeleted.pop_back(); + frames = FRAMES_DELETE_CHUNKS; + } +} + +Chunk* World::RetrieveChunk(int x, int y) { + for (int index = 0; index < m_tbDeleted.size(); ++index) { + int cx, cy; + m_tbDeleted.at(index)->GetPosition(cx, cy); + + if (cx == x && cy == y) + return std::move(m_tbDeleted.at(index)); + } + + return nullptr; +} diff --git a/SQCSim2021/world.h b/SQCSim2021/world.h index 6d9c3c5..a90e08c 100644 --- a/SQCSim2021/world.h +++ b/SQCSim2021/world.h @@ -27,11 +27,14 @@ class World { BlockType BlockAt(const Vector3f& pos, BlockType defaultBlockType = BTYPE_AIR) const; void TransposeWorld(Player& player); + void CleanUpWorld(int& frames); + Chunk* RetrieveChunk(int x, int y); + private: Array2d m_chunks = Array2d(WORLD_SIZE_X, WORLD_SIZE_Y); std::vector m_tbDeleted; - int m_center[2] = {INT16_MAX / 2, INT16_MAX / 2}; + int m_center[2] = {INT16_MAX / 2 - WORLD_SIZE_X / 2, INT16_MAX / 2 - WORLD_SIZE_Y / 2}; }; #endif // WORLD_H__