Compare commits

..

No commits in common. "8690efe18433c2e4f7b11f4280de4c423cac9a00" and "6c2f580134f79b8c84688dec24e5d9d2a9c1809c" have entirely different histories.

11 changed files with 2 additions and 163 deletions

View File

@ -268,7 +268,6 @@ add_library(Engine STATIC
engine/src/core/events/ApplicationEvents.h
engine/src/core/events/EventChannels.cpp
engine/src/core/events/EventChannels.h
engine/src/core/events/ApplicationEvents.cpp
)
target_include_directories(Engine PUBLIC engine/src ${dr_libs_SOURCE_DIR})
target_link_libraries(Engine PUBLIC OpenGL::GL glfw glad glm::glm imgui spdlog::spdlog tinyobjloader stb_image OpenAL::OpenAL NetworkCore)
@ -330,10 +329,6 @@ add_executable(ColorRace
game/src/multiplayer/LudoGameClient.cpp
game/src/multiplayer/LudoGameClient.h
game/src/multiplayer/LudoNetworkEvents.h
game/src/multiplayer/lobby/LobbyScene.cpp
game/src/multiplayer/lobby/LobbyScene.h
game/src/multiplayer/lobby/LobbyUiLayer.cpp
game/src/multiplayer/lobby/LobbyUiLayer.h
)
target_link_libraries(ColorRace PRIVATE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

View File

@ -22,8 +22,6 @@ namespace engine {
using T = std::decay_t<decltype(e)>;
if constexpr (std::is_same_v<T, QuitRequested>) {
m_window->requestWindowClose();
} else if constexpr (std::is_same_v<T, SceneSwitchRequested>) {
m_sceneManager.switchTo(std::move(e.nextScene), std::move(e.onSceneLoaded));
}
}, event);
});

View File

@ -1,14 +0,0 @@
//
// Created by sebastian on 07.08.26.
//
#include "ApplicationEvents.h"
#include "layer/Scene.h" // hier ist Scene vollständig bekannt
SceneSwitchRequested::SceneSwitchRequested() = default;
SceneSwitchRequested::SceneSwitchRequested(std::unique_ptr<engine::Scene> scene, std::function<void()> callback) : nextScene(std::move(scene)), onSceneLoaded(std::move(callback)){
}
SceneSwitchRequested::~SceneSwitchRequested() = default;
SceneSwitchRequested::SceneSwitchRequested(SceneSwitchRequested&&) noexcept = default;
SceneSwitchRequested& SceneSwitchRequested::operator=(SceneSwitchRequested&&) noexcept = default;

View File

@ -4,28 +4,10 @@
#ifndef COLORRACE_APPLICATIONEVENTS_H
#define COLORRACE_APPLICATIONEVENTS_H
#include <functional>
#include <memory>
#include <variant>
namespace engine {
class Scene;
}
struct QuitRequested {};
struct SceneSwitchRequested {
std::unique_ptr<engine::Scene> nextScene;
std::function<void()> onSceneLoaded;
SceneSwitchRequested();
SceneSwitchRequested(std::unique_ptr<engine::Scene> scene, std::function<void()> callback);
~SceneSwitchRequested();
SceneSwitchRequested(SceneSwitchRequested&&) noexcept;
SceneSwitchRequested& operator=(SceneSwitchRequested&&) noexcept;
};
using ApplicationEvents = std::variant<QuitRequested, SceneSwitchRequested>;
using ApplicationEvents = std::variant<QuitRequested>;
#endif //COLORRACE_APPLICATIONEVENTS_H

@ -1 +1 @@
Subproject commit 79214c855ac1c414fe85ffe76af4e2e57b8305ec
Subproject commit 944f2f63e06e1d368f85c11916046312b1d0067f

View File

@ -6,7 +6,6 @@
#include "imgui.h"
#include "GLFW/glfw3.h"
#include "multiplayer/lobby/LobbyScene.h"
#include "spdlog/spdlog.h"
void MainMenuUiLayer::onRender() {
@ -71,12 +70,7 @@ void MainMenuUiLayer::onAttachImpl() {
if (e.success) {
spdlog::info("Received positive Connection Result");
m_connectionError = false;
std::unique_ptr<engine::Scene> lobbyScene = std::make_unique<LobbyScene>(m_applicationEventBus, getInputStack(), getKeyboard(), getMouse());
m_closeConnectPopup = true;
ApplicationEvents switchToLobby = SceneSwitchRequested{std::move(lobbyScene), []() {
spdlog::info("Lobby Scene loaded");
}};
m_applicationEventBus->publish(switchToLobby);
} else {
spdlog::info("Received negative Connection Result");
m_connectionError = true;

View File

@ -1,23 +0,0 @@
//
// Created by sebastian on 06.08.26.
//
#include "LobbyScene.h"
#include "LobbyUiLayer.h"
std::vector<engine::AssetRequest> LobbyScene::getRequiredAssets() const {
std::vector<engine::AssetRequest> requests;
requests.emplace_back(engine::TextureRequest("lobby_background", "assets/textures/multiplayer_lobby.png"));
return requests;
}
void LobbyScene::onEnter() {
Scene::onEnter();
addLayer(std::make_unique<LobbyUiLayer>(m_keyboard, m_mouse, getAnimationEventBus(), m_applicationEventBus, *assetManager));
}
void LobbyScene::onExit() {
Scene::onExit();
}

View File

@ -1,23 +0,0 @@
//
// Created by sebastian on 06.08.26.
//
#ifndef COLORRACE_LOBBYSCENE_H
#define COLORRACE_LOBBYSCENE_H
#include "layer/Scene.h"
class LobbyScene : public engine::Scene {
public:
LobbyScene(const std::shared_ptr<engine::EventBus<ApplicationEvents>> &applicationEventbus,
engine::InputContextStack &inputStack, engine::Keyboard &keyboard, engine::Mouse &mouse)
: Scene(applicationEventbus, inputStack, keyboard, mouse) {
}
std::vector<engine::AssetRequest> getRequiredAssets() const override;
void onEnter() override;
void onExit() override;
};
#endif //COLORRACE_LOBBYSCENE_H

View File

@ -1,30 +0,0 @@
//
// Created by sebastian on 06.08.26.
//
#include "LobbyUiLayer.h"
#include "spdlog/spdlog.h"
void LobbyUiLayer::onAttachImpl() {
Layer::onAttachImpl();
auto backgroundTexture = m_assetManager.getTexture("lobby_background");
backgroundImage = std::make_unique<engine::GUITexture>(backgroundTexture, glm::vec2(0,0), glm::vec2(1,1));
}
void LobbyUiLayer::onDetachImpl() {
Layer::onDetachImpl();
}
void LobbyUiLayer::onRender() {
std::vector<engine::GUITexture> guiElements;
guiElements.emplace_back(*backgroundImage);
m_guiRenderer.render(guiElements);
}
void LobbyUiLayer::onUpdate(float deltaTime) {
Layer::onUpdate(deltaTime);
}

View File

@ -1,40 +0,0 @@
//
// Created by sebastian on 06.08.26.
//
#ifndef COLORRACE_LOBBYUILAYER_H
#define COLORRACE_LOBBYUILAYER_H
#include "layer/Layer.h"
#include "loader/assets/AssetManager.h"
#include "renderer/GuiRenderer.h"
#include "renderer/ui/GUITexture.h"
class LobbyUiLayer : public engine::Layer {
public:
LobbyUiLayer(engine::Keyboard &keyboard, engine::Mouse &mouse,
engine::EventBus<engine::animation::AnimationMarkerEvent> &animationEventBus, engine::AssetManager& assetManager)
: Layer(keyboard, mouse, animationEventBus), m_assetManager(assetManager) {
}
LobbyUiLayer(engine::Keyboard &keyboard, engine::Mouse &mouse,
engine::EventBus<engine::animation::AnimationMarkerEvent> &animationEventBus,
const std::shared_ptr<engine::EventBus<ApplicationEvents>> &applicationEventBus, engine::AssetManager& assetManager)
: Layer(keyboard, mouse, animationEventBus, applicationEventBus), m_assetManager(assetManager) {
}
void onRender() override;
void onUpdate(float deltaTime) override;
protected:
void onAttachImpl() override;
void onDetachImpl() override;
private:
std::unique_ptr<engine::GUITexture> backgroundImage;
engine::AssetManager& m_assetManager;
engine::renderer::GuiRenderer m_guiRenderer;
};
#endif //COLORRACE_LOBBYUILAYER_H