Skip to content

Commit 503394c

Browse files
authored
Merge branch 'main' into rtp-104-mnt
2 parents 26c3ca3 + 955c619 commit 503394c

File tree

134 files changed

+4357
-367
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+4357
-367
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ abra_tests
4141
# Clion
4242
.idea
4343

44-
build
44+
build/*
4545
bin
4646
cmake-build-*
4747
.vs

client/main.cpp

Lines changed: 26 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,22 @@
55
** main.cpp
66
*/
77

8-
#include "./src/constants/settings.hpp"
8+
#include "./src/builder/resources.hpp"
9+
#include "./src/builder/scenes.hpp"
10+
#include "./src/builder/services.hpp"
11+
#include "./src/builder/settings.hpp"
912
#include "./src/constants/window.hpp"
1013
#include "./src/scenes/game.hpp"
11-
#include "./src/scenes/lobby.hpp"
1214
#include "./src/scenes/leaderboard.hpp"
15+
#include "./src/scenes/lobby.hpp"
1316
#include "./src/scenes/menu.hpp"
1417
#include "./src/scenes/settings.hpp"
1518
#include "libs/mew/src/game/builder.hpp"
1619
#include "libs/mew/src/game/game.hpp"
20+
#include "scenes/end.hpp"
1721

1822
using namespace mew::game;
19-
using namespace rtype::client::scenes;
20-
using namespace rtype::client::services;
23+
using namespace rtype::client::builder;
2124

2225
#if (defined(_WIN32) && !defined(DEBUG))
2326
#include <windows.h>
@@ -29,38 +32,24 @@ using namespace rtype::client::services;
2932

3033
int MAIN {
3134
auto builder = GameBuilder();
32-
auto game = builder
33-
.WithWindowProperties({
34-
.title = APP_WINDOW_TITLE,
35-
.videoMode = {APP_WINDOW_WIDTH, APP_WINDOW_HEIGHT},
36-
.style = APP_WINDOW_STYLE,
37-
.contextSettings = sf::ContextSettings(),
38-
.frameLimit = APP_WINDOW_FRAME_LIMIT,
39-
.iconPath = APP_WINDOW_ICON,
40-
})
41-
.WithService<ServerConnectionService>("127.0.0.1", 4848)
42-
.Build();
43-
44-
game.managers.settings->Set(SETTING_APP_VOLUME, SETTING_DEFAULT_APP_VOLUME);
45-
game.managers.settings->Set(SETTING_GAME_KEYMAP, SETTING_DEFAULT_GAME_KEYMAP);
46-
game.managers.settings->Set(SETTING_GAME_ANIMATIONS, SETTING_DEFAULT_GAME_ANIMATIONS);
47-
48-
game.managers.resources->LoadFont("assets/fonts/main.ttf", "main");
49-
game.managers.resources->LoadTexture("assets/icons/R-Type.png", "g-epitech-logo");
50-
51-
game.managers.resources->LoadShader("assets/shaders/protanopia.frag", "protanopia",
52-
sf::Shader::Fragment);
53-
game.managers.resources->LoadShader("assets/shaders/deuteranopia.frag", "deuteranopia",
54-
sf::Shader::Fragment);
55-
game.managers.resources->LoadShader("assets/shaders/tritanopia.frag", "tritanopia",
56-
sf::Shader::Fragment);
57-
58-
game.managers.scenes->RegisterScene<SceneMenu>();
59-
game.managers.scenes->RegisterScene<SceneLeaderboard>();
60-
game.managers.scenes->RegisterScene<SceneSettings>();
61-
game.managers.scenes->RegisterScene<SceneLobby>();
62-
game.managers.scenes->RegisterScene<SceneGame>();
63-
game.managers.scenes->GoToScene<SceneMenu>();
6435

65-
return game.Run();
36+
Services::RegisterServices(&builder);
37+
builder.WithWindowProperties({
38+
.title = APP_WINDOW_TITLE,
39+
.videoMode = {APP_WINDOW_WIDTH, APP_WINDOW_HEIGHT},
40+
.style = APP_WINDOW_STYLE,
41+
.contextSettings = sf::ContextSettings(),
42+
.frameLimit = APP_WINDOW_FRAME_LIMIT,
43+
.iconPath = APP_WINDOW_ICON,
44+
});
45+
{
46+
auto game = builder.Build();
47+
48+
Settings::LoadSettings(&game);
49+
Resources::LoadResources(&game);
50+
Scenes::LoadScenes(&game);
51+
Scenes::SetEntryScene(&game);
52+
53+
return game.Run();
54+
}
6655
}

client/src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
add_subdirectory(builder)
12
add_subdirectory(game)
23
add_subdirectory(systems)
34
add_subdirectory(services)
45
add_subdirectory(components)
56
add_subdirectory(scenes)
67
add_subdirectory(constants)
8+
add_subdirectory(ui)

client/src/bases/scene_base.tpp

Lines changed: 0 additions & 33 deletions
This file was deleted.

client/src/builder/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
target_sources(${CLIENT_CORE_LIB} PRIVATE
2+
resources.cpp
3+
resources.hpp
4+
scenes.cpp
5+
scenes.hpp
6+
settings.hpp
7+
settings.cpp
8+
services.cpp
9+
services.hpp
10+
)

client/src/builder/resources.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
** EPITECH PROJECT, 2024
3+
** r-type
4+
** File description:
5+
** resources.cpp
6+
*/
7+
8+
#include "resources.hpp"
9+
10+
using namespace rtype::client::builder;
11+
12+
void Resources::LoadResources(mew::game::Game *game) {
13+
game->managers.resources->LoadFont("assets/fonts/main.ttf", "main");
14+
game->managers.resources->LoadTexture("assets/icons/R-Type.png", "g-epitech-logo");
15+
16+
game->managers.resources->LoadShader("assets/shaders/protanopia.frag", "protanopia",
17+
sf::Shader::Fragment);
18+
game->managers.resources->LoadShader("assets/shaders/deuteranopia.frag", "deuteranopia",
19+
sf::Shader::Fragment);
20+
game->managers.resources->LoadShader("assets/shaders/tritanopia.frag", "tritanopia",
21+
sf::Shader::Fragment);
22+
game->managers.sound->LoadSoundBuffer("assets/sounds/button_click.ogg", "buttons:click");
23+
}

client/src/builder/resources.hpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
** EPITECH PROJECT, 2024
3+
** r-type
4+
** File description:
5+
** resources.cpp
6+
*/
7+
8+
#pragma once
9+
10+
#include "libs/mew/src/game/game.hpp"
11+
12+
namespace rtype::client::builder {
13+
class Resources {
14+
public:
15+
/**
16+
* @brief Load the resources of the game
17+
* @param game Game to load the resources
18+
*/
19+
static void LoadResources(mew::game::Game *game);
20+
};
21+
} // namespace rtype::client::builder

client/src/builder/scenes.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
** EPITECH PROJECT, 2024
3+
** r-type
4+
** File description:
5+
** scenes.cpp
6+
*/
7+
8+
#include "scenes.hpp"
9+
10+
#include "client/src/scenes/game.hpp"
11+
#include "client/src/scenes/leaderboard.hpp"
12+
#include "client/src/scenes/lobby.hpp"
13+
#include "client/src/scenes/menu.hpp"
14+
#include "client/src/scenes/register.hpp"
15+
#include "client/src/scenes/settings.hpp"
16+
#include "client/src/scenes/start/start.hpp"
17+
#include "scenes/end.hpp"
18+
19+
using namespace rtype::client::builder;
20+
using namespace rtype::client::scenes;
21+
22+
void Scenes::LoadScenes(mew::game::Game *game) {
23+
game->managers.scenes->RegisterScene<SceneRegister>();
24+
game->managers.scenes->RegisterScene<SceneMenu>();
25+
game->managers.scenes->RegisterScene<SceneSettings>();
26+
game->managers.scenes->RegisterScene<SceneLobby>();
27+
game->managers.scenes->RegisterScene<SceneGame>();
28+
game->managers.scenes->RegisterScene<SceneStart>();
29+
game->managers.scenes->RegisterScene<SceneLeaderboard>();
30+
game->managers.scenes->RegisterScene<SceneEnd>();
31+
}
32+
33+
void Scenes::SetEntryScene(mew::game::Game *game) {
34+
game->managers.scenes->GoToScene<SceneRegister>();
35+
}

client/src/builder/scenes.hpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
** EPITECH PROJECT, 2024
3+
** r-type
4+
** File description:
5+
** scenes.hpp
6+
*/
7+
8+
#pragma once
9+
10+
#include "libs/mew/src/game/game.hpp"
11+
12+
namespace rtype::client::builder {
13+
class Scenes {
14+
public:
15+
/**
16+
* @brief Load the scenes of the game
17+
* @param game Game to load the scenes
18+
*/
19+
static void LoadScenes(mew::game::Game *game);
20+
21+
/**
22+
* @brief Set the entry scene of the game
23+
* @param game Game to set the entry scene
24+
*/
25+
static void SetEntryScene(mew::game::Game *game);
26+
};
27+
} // namespace rtype::client::builder

client/src/builder/services.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
** EPITECH PROJECT, 2024
3+
** r-type
4+
** File description:
5+
** services.cpp
6+
*/
7+
8+
#include "services.hpp"
9+
10+
#include "client/src/services/rooms_service.hpp"
11+
#include "client/src/services/server_connection_service.hpp"
12+
13+
using namespace rtype::client::builder;
14+
using namespace rtype::client::services;
15+
16+
void Services::RegisterServices(mew::game::GameBuilder *builder) {
17+
builder->WithService<ServerConnectionService>("127.0.0.1", 4848);
18+
builder->WithService<RoomsService>();
19+
}

0 commit comments

Comments
 (0)