From c0050cffaaebf4d4fe939ee6dc95f73f6dd14978 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 30 Nov 2023 05:00:48 +0300 Subject: [PATCH] Minor refactor + comments --- src/frontend/screens.cpp | 2 +- src/logic/ChunksController.h | 10 ++++++++-- src/logic/LevelController.cpp | 5 ++--- src/logic/LevelController.h | 12 ++++++++---- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/frontend/screens.cpp b/src/frontend/screens.cpp index 7b56b3be..9855cde7 100644 --- a/src/frontend/screens.cpp +++ b/src/frontend/screens.cpp @@ -145,7 +145,7 @@ void LevelScreen::update(float delta) { if (!hud->isPause()) { level->world->updateTimers(delta); } - controller->update(delta, !inputLocked, hud->isPause(), !inputLocked); + controller->update(delta, !inputLocked, hud->isPause()); hud->update(); } diff --git a/src/logic/ChunksController.h b/src/logic/ChunksController.h index 7c6e37c1..af646163 100644 --- a/src/logic/ChunksController.h +++ b/src/logic/ChunksController.h @@ -11,20 +11,26 @@ class VoxelRenderer; class ChunksLoader; class WorldGenerator; +/* ChunksController manages chunks dynamic loading/unloading */ class ChunksController { private: Level* level; Chunks* chunks; Lighting* lighting; - int64_t avgDurationMcs = 1000; uint padding; WorldGenerator* generator; + + /* Average measured microseconds duration of loadVisible call */ + int64_t avgDurationMcs = 1000; + + /* Process one chunk: load it or calculate lights for it */ + bool loadVisible(); public: ChunksController(Level* level, Chunks* chunks, Lighting* lighting, uint padding); ~ChunksController(); + /* @param maxDuration milliseconds reserved for chunks loading */ void update(int64_t maxDuration); - bool loadVisible(); }; #endif /* VOXELS_CHUNKSCONTROLLER_H_ */ diff --git a/src/logic/LevelController.cpp b/src/logic/LevelController.cpp index b7adc736..f595b2a3 100644 --- a/src/logic/LevelController.cpp +++ b/src/logic/LevelController.cpp @@ -22,8 +22,7 @@ LevelController::~LevelController() { void LevelController::update( float delta, bool input, - bool pause, - bool interactions) { + bool pause) { if (!pause) { if (input) { player->updateKeyboard(); @@ -35,7 +34,7 @@ void LevelController::update( } player->refreshCamera(); - if (interactions) { + if (input) { player->updateInteraction(); } else { player->selectedBlockId = -1; diff --git a/src/logic/LevelController.h b/src/logic/LevelController.h index 06e324c9..da412138 100644 --- a/src/logic/LevelController.h +++ b/src/logic/LevelController.h @@ -7,21 +7,25 @@ class Level; class ChunksController; class PlayerController; +/* LevelController - the main game logic controller */ class LevelController { EngineSettings& settings; - Level* level; - + // Sub-controllers ChunksController* chunks; PlayerController* player; public: LevelController(EngineSettings& settings, Level* level); ~LevelController(); + /* + @param delta time elapsed since the last update + @param input is user input allowed to be handled + @param pause is world and player simulation paused + */ void update(float delta, bool input, - bool pause, - bool interactions); + bool pause); }; #endif // LOGIC_LEVEL_CONTROLLER_H_