From 856f5879f18e0ba9334335d985305efc027f7f1f Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 30 Nov 2023 05:14:10 +0300 Subject: [PATCH] Controllers minor refactor --- src/logic/LevelController.cpp | 17 +---------------- src/logic/LevelController.h | 2 +- src/logic/PlayerController.cpp | 19 +++++++++++++++++++ src/logic/PlayerController.h | 12 +++++++----- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/src/logic/LevelController.cpp b/src/logic/LevelController.cpp index f595b2a3..05c134b6 100644 --- a/src/logic/LevelController.cpp +++ b/src/logic/LevelController.cpp @@ -23,22 +23,7 @@ void LevelController::update( float delta, bool input, bool pause) { - if (!pause) { - if (input) { - player->updateKeyboard(); - } else { - player->resetKeyboard(); - } - player->updateCamera(delta, input); - player->updateControls(delta); - - } - player->refreshCamera(); - if (input) { - player->updateInteraction(); - } else { - player->selectedBlockId = -1; - } + player->update(delta, input, pause); level->update(); chunks->update(settings.chunks.loadSpeed); } \ No newline at end of file diff --git a/src/logic/LevelController.h b/src/logic/LevelController.h index da412138..a889cd03 100644 --- a/src/logic/LevelController.h +++ b/src/logic/LevelController.h @@ -7,7 +7,7 @@ class Level; class ChunksController; class PlayerController; -/* LevelController - the main game logic controller */ +/* LevelController manages other controllers */ class LevelController { EngineSettings& settings; Level* level; diff --git a/src/logic/PlayerController.cpp b/src/logic/PlayerController.cpp index a1e2620c..8b58d7cb 100644 --- a/src/logic/PlayerController.cpp +++ b/src/logic/PlayerController.cpp @@ -115,6 +115,25 @@ PlayerController::PlayerController(Level* level, const EngineSettings& settings) camControl(level->player, settings.camera) { } +void PlayerController::update(float delta, bool input, bool pause) { + if (!pause) { + if (input) { + updateKeyboard(); + } else { + resetKeyboard(); + } + updateCamera(delta, input); + updateControls(delta); + + } + refreshCamera(); + if (input) { + updateInteraction(); + } else { + selectedBlockId = -1; + } +} + void PlayerController::updateKeyboard() { input.moveForward = Events::active(BIND_MOVE_FORWARD); input.moveBack = Events::active(BIND_MOVE_BACK); diff --git a/src/logic/PlayerController.h b/src/logic/PlayerController.h index f7ca2295..eb50850e 100644 --- a/src/logic/PlayerController.h +++ b/src/logic/PlayerController.h @@ -7,7 +7,6 @@ #include "../objects/Player.h" class Camera; -class Player; class Level; class CameraControl { @@ -30,17 +29,20 @@ class PlayerController { Player* player; PlayerInput input; CameraControl camControl; -public: - static glm::vec3 selectedBlockPosition; - static int selectedBlockId; - PlayerController(Level* level, const EngineSettings& settings); void updateKeyboard(); void updateCamera(float delta, bool movement); void refreshCamera(); void resetKeyboard(); void updateControls(float delta); void updateInteraction(); + +public: + static glm::vec3 selectedBlockPosition; + static int selectedBlockId; + + PlayerController(Level* level, const EngineSettings& settings); + void update(float delta, bool input, bool pause); }; #endif /* PLAYER_CONTROL_H_ */