aboutsummaryrefslogtreecommitdiff
path: root/source/30-game/App.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2023-10-19 22:50:07 -0700
committerrtk0c <[email protected]>2023-10-19 22:50:07 -0700
commit2c92e07f337e42cf58970443f9de678f85a9b2a4 (patch)
tree075d5407e1e12a9d35cbee6e4c20ad34e0765c42 /source/30-game/App.cpp
parent615809c036f604bce4582cea8ad49c64693f4f45 (diff)
The great renaming: switch to "module style"
Diffstat (limited to 'source/30-game/App.cpp')
-rw-r--r--source/30-game/App.cpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/source/30-game/App.cpp b/source/30-game/App.cpp
deleted file mode 100644
index 8328589..0000000
--- a/source/30-game/App.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-#include "App.hpp"
-
-#include "ScopeGuard.hpp"
-#include "Utils.hpp"
-
-#include <rapidjson/document.h>
-#include <rapidjson/filereadstream.h>
-#include <string>
-#include <utility>
-
-using namespace std::literals;
-
-App::App()
- : mActiveCamera{ &mMainCamera } {
- auto& worldRoot = mWorld.GetRoot();
-
- constexpr int kPlayerCount = 2;
- for (int i = 0; i < kPlayerCount; ++i) {
- auto player = new Player(&mWorld, i);
- worldRoot.AddChild(player);
- mPlayers.push_back(player);
- };
-
-#if defined(BRUSSEL_DEV_ENV)
- SetGameRunning(false);
- SetEditorVisible(true);
-#else
- SetGameRunning(true);
-#endif
-
- mMainCamera.name = "Main Camera"s;
- mMainCamera.SetEyePos(glm::vec3(0, 0, 1));
- mMainCamera.SetTargetDirection(glm::vec3(0, 0, -1));
- mMainCamera.SetHasPerspective(false);
-
- do {
- auto file = Utils::OpenCstdioFile("assets/GameRendererBindings.json", Utils::Read);
- if (!file) break;
- DEFER { fclose(file); };
-
- char readerBuffer[65536];
- rapidjson::FileReadStream stream(file, readerBuffer, sizeof(readerBuffer));
-
- rapidjson::Document root;
- root.ParseStream(stream);
-
- mWorldRenderer.LoadBindings(root);
- } while (false);
-}
-
-App::~App() {
-}
-
-Camera* App::GetActiveCamera() const {
- return mActiveCamera;
-}
-
-void App::BindActiveCamera(Camera* camera) {
- mActiveCamera = camera;
-}
-
-void App::UnbindActiveCamera() {
- mActiveCamera = &mMainCamera;
-}
-
-bool App::IsGameRunning() const {
- return mGameRunning;
-}
-
-void App::SetGameRunning(bool running) {
- if (mGameRunning != running) {
- mGameRunning = running;
- if (running) {
- mWorld.Awaken();
- } else {
- mWorld.Resleep();
- }
- }
-}
-
-bool App::IsEditorVisible() const {
- return mEditorVisible;
-}
-
-void App::SetEditorVisible(bool visible) {
- if (mEditorVisible != visible) {
- if (visible) {
-#if BRUSSEL_ENABLE_EDITOR
- mEditorVisible = true;
- if (mEditor == nullptr) {
- mEditor = IEditor::CreateInstance(this);
- }
-#endif
- } else {
- mEditorVisible = false;
- }
- }
-}
-
-void App::Show() {
- if (mEditorVisible) {
- mEditor->Show();
- }
-}
-
-void App::Update() {
- if (IsGameRunning()) {
- mWorld.Update();
- }
-}
-
-void App::Draw(float currentTime, float deltaTime) {
- mWorldRenderer.BeginFrame(*mActiveCamera, currentTime, deltaTime);
-
- PodVector<GameObject*> stack;
- stack.push_back(&mWorld.GetRoot());
-
- while (!stack.empty()) {
- auto obj = stack.back();
- stack.pop_back();
-
- for (auto child : obj->GetChildren()) {
- stack.push_back(child);
- }
-
- auto renderObjects = obj->GetRenderObjects();
- mWorldRenderer.Draw(renderObjects.data(), obj, renderObjects.size());
- }
-
- mWorldRenderer.EndFrame();
-}
-
-void App::HandleMouse(int button, int action) {
-}
-
-void App::HandleMouseMotion(double xOff, double yOff) {
-}
-
-void App::HandleKey(GLFWkeyboard* keyboard, int key, int action) {
- if (!mKeyCaptureCallbacks.empty()) {
- auto& callback = mKeyCaptureCallbacks.front();
- bool remove = callback(key, action);
- if (remove) {
- mKeyCaptureCallbacks.pop_front();
- }
- }
-
- switch (key) {
- case GLFW_KEY_F3: {
- if (action == GLFW_PRESS) {
- SetEditorVisible(!IsEditorVisible());
- }
- return;
- }
- }
-
- for (auto& player : mPlayers) {
- for (auto playerKeyboard : player->boundKeyboards) {
- if (playerKeyboard == keyboard) {
- player->HandleKeyInput(key, action);
- }
- }
- }
-}
-
-void App::PushKeyCaptureCallback(KeyCaptureCallback callback) {
- mKeyCaptureCallbacks.push_back(std::move(callback));
-}