Skip to content

Commit 589d1b1

Browse files
Merge pull request #1 from X-R-G-B/merge_rtype
BLUGA: Fix conflicts
2 parents b11b780 + ba18ddc commit 589d1b1

File tree

12 files changed

+186
-54
lines changed

12 files changed

+186
-54
lines changed

libs/B-luga-graphics/include/B-luga-graphics/AnimRect.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace Types {
2525
{LEFT, "left" },
2626
});
2727

28-
enum RectListType { UNDEFINED, DEFAULT_RECT, MOVE, ATTACK, DEAD };
28+
enum RectListType { UNDEFINED, DEFAULT_RECT, MOVE, ATTACK, DEAD, HOVER };
2929

3030
NLOHMANN_JSON_SERIALIZE_ENUM(
3131
RectListType,
@@ -35,6 +35,7 @@ namespace Types {
3535
{MOVE, "move" },
3636
{ATTACK, "attack" },
3737
{DEAD, "dead" },
38+
{HOVER, "hover" }
3839
});
3940

4041
class AnimRect {

libs/B-luga-graphics/include/B-luga-graphics/GraphicsCustomTypes.hpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,55 @@ namespace Types {
4646
float size;
4747
};
4848

49+
struct Button {
50+
Button(std::function<void()> &fct) : callback(fct) {};
51+
std::function<void()> callback;
52+
};
53+
54+
struct InputBox {
55+
InputBox(
56+
std::string &textStr,
57+
std::string &boxName,
58+
std::size_t &maxCharacters,
59+
bool isSelected = false)
60+
: name(boxName),
61+
text(textStr),
62+
maxChar(maxCharacters),
63+
selected(isSelected) {};
64+
std::string name;
65+
std::string text;
66+
std::size_t maxChar;
67+
bool selected;
68+
};
69+
4970
struct Color {
5071
Raylib::Color color;
5172
};
73+
74+
static const std::unordered_map<std::string, Raylib::Color> colorMatchStrings({
75+
{"darkgray", Raylib::DarkGray },
76+
{"yellow", Raylib::Yellow },
77+
{"gold", Raylib::Gold },
78+
{"orange", Raylib::Orange },
79+
{"pink", Raylib::Pink },
80+
{"red", Raylib::Red },
81+
{"maroon", Raylib::Maroon },
82+
{"green", Raylib::Green },
83+
{"lime", Raylib::Lime },
84+
{"darkgreen", Raylib::DarkGreen },
85+
{"skyblue", Raylib::SkyBlue },
86+
{"blue", Raylib::Blue },
87+
{"darkblue", Raylib::DarkBlue },
88+
{"purple", Raylib::Purple },
89+
{"violet", Raylib::Violet },
90+
{"darkpurple", Raylib::DarkPurple},
91+
{"beige", Raylib::Beige },
92+
{"brown", Raylib::Brown },
93+
{"darkbrown", Raylib::DarkBrown },
94+
{"white", Raylib::White },
95+
{"black", Raylib::Black },
96+
{"blank", Raylib::Blank },
97+
{"magenta", Raylib::Magenta },
98+
{"white", Raylib::RayWhite }
99+
});
52100
} // namespace Types

libs/B-luga-graphics/include/B-luga-graphics/GraphicsSystems.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ namespace Systems::GraphicsSystems {
4747
{
4848
Raylib::Audio::closeAudioDevice();
4949
Raylib::Window::closeWindow();
50+
Raylib::TextureManager::unloadTextures();
5051
}
5152

5253
static void checkRaylibStop(std::size_t /*unused*/, std::size_t /*unused*/)
@@ -61,7 +62,6 @@ namespace Systems::GraphicsSystems {
6162
public:
6263
void initPlugin() override
6364
{
64-
Logger::fatal("initplugin");
6565
std::lock_guard<std::mutex> lock(Registry::getInstance().mutex);
6666
Registry::getInstance().addEventCallback(Events::REMOVE_ENTITY, UnloadRaylib::unloadRaylibComponents);
6767
Registry::getInstance().addEventCallback(Events::CLEAR, UnloadRaylib::unloadRaylibComponents);
@@ -72,7 +72,6 @@ namespace Systems::GraphicsSystems {
7272
}
7373
std::vector<std::function<void(std::size_t, std::size_t)>> getSystems() override
7474
{
75-
Logger::fatal("getSystems graphics");
7675
std::vector<std::function<void(std::size_t, std::size_t)>> graphicsSystems = {
7776
checkRaylibStop
7877
};

libs/B-luga-graphics/include/B-luga-graphics/Raylib/Audio/Audio.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ namespace Raylib {
2323
// Sounds
2424
class Sound {
2525
public:
26-
static std::unique_ptr<Sound> fromFile(const std::string& fileName, float volume);
26+
static std::unique_ptr<Sound> fromFile(const std::string &fileName, float volume);
2727

2828
virtual ~Sound() = default;
2929

30-
virtual bool isReady() const = 0;
30+
[[nodiscard]] virtual bool isReady() const = 0;
3131

3232
virtual void unload() = 0;
3333

@@ -39,19 +39,19 @@ namespace Raylib {
3939

4040
virtual void resume() const = 0;
4141

42-
virtual bool isPlaying() const = 0;
42+
[[nodiscard]] virtual bool isPlaying() const = 0;
4343

4444
virtual void setVolume(float volume) const = 0;
4545

4646
virtual void setPitch(float pitch) const = 0;
4747

4848
virtual void setPan(float pan) const = 0;
4949

50-
virtual bool NeedToPlay() const = 0;
50+
[[nodiscard]] virtual bool NeedToPlay() const = 0;
5151

5252
virtual void setNeedToPlay(bool needToPlay) = 0;
5353

54-
virtual const std::string &getPath() const = 0;
54+
[[nodiscard]] virtual const std::string &getPath() const = 0;
5555
};
5656

5757
class Music {

libs/B-luga-graphics/include/B-luga-graphics/Raylib/Events/Inputs.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,24 @@ namespace Raylib {
114114
default : return -1;
115115
}
116116
}
117+
118+
KeyboardKey Inputs::getRaylibKey(int equivalent)
119+
{
120+
for (int i = 0; i < static_cast<int>(KeyboardKey::KB_MAX_MAX); i++) {
121+
if (equivalent == getEquivalentRaylibKey(static_cast<KeyboardKey>(i))) {
122+
return static_cast<KeyboardKey>(i);
123+
}
124+
}
125+
return KeyboardKey::KB_MAX_MAX;
126+
}
127+
128+
MouseButton Inputs::getRaylibMouse(int equivalent)
129+
{
130+
for (int i = 0; i < static_cast<int>(MouseButton::MOUSE_MAX_MAX); i++) {
131+
if (equivalent == getEquivalentRaylibMouse(static_cast<MouseButton>(i))) {
132+
return static_cast<MouseButton>(i);
133+
}
134+
}
135+
return MouseButton::MOUSE_MAX_MAX;
136+
}
117137
}

libs/B-luga-graphics/include/B-luga-graphics/Raylib/Events/Inputs.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
namespace Raylib {
1111

1212
enum class KeyboardKey : int {
13-
KB_NULL ,
13+
KB_NULL = 0,
1414
KB_APOSTROPHE ,
1515
KB_COMMA ,
1616
KB_MINUS ,
@@ -99,21 +99,25 @@ namespace Raylib {
9999
KB_RIGHT_ALT ,
100100
KB_RIGHT_SUPER ,
101101
KB_MENU ,
102+
KB_MAX_MAX ,
102103
};
103104

104105
enum class MouseButton : int {
105-
MOUSE_BTN_LEFT ,
106+
MOUSE_BTN_LEFT = 0,
106107
MOUSE_BTN_RIGHT ,
107108
MOUSE_BTN_MIDDLE ,
108109
MOUSE_BTN_SIDE ,
109110
MOUSE_BTN_EXTRA ,
110111
MOUSE_BTN_FORWARD ,
111112
MOUSE_BTN_BACK ,
113+
MOUSE_MAX_MAX ,
112114
};
113115

114116
class Inputs {
115117
public:
116118
static int getEquivalentRaylibKey(KeyboardKey key);
117119
static int getEquivalentRaylibMouse(MouseButton button);
120+
static KeyboardKey getRaylibKey(int equivalent);
121+
static MouseButton getRaylibMouse(int equivalent);
118122
};
119123
} // namespace Raylib

libs/B-luga-graphics/include/B-luga-graphics/Raylib/Graphics/Graphics.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ extern "C" {
33
#include "raylib.h"
44
}
55
#include "RaylibImpl/Graphics/Graphics.hpp"
6+
#include "B-luga-graphics/Raylib/Events/Inputs.hpp"
67
#include "Graphics.hpp"
78

89
namespace Raylib {
@@ -104,29 +105,35 @@ namespace Raylib {
104105
TakeScreenshot(fileName.c_str());
105106
}
106107

108+
// Collision check functions
109+
bool checkCollisionPointRec(Vector2 point, Rectangle rec)
110+
{
111+
return (CheckCollisionPointRec({point.x, point.y}, {rec.x, rec.y, rec.width, rec.height}));
112+
}
113+
107114
bool KeyboardInput::isKeyPressed(KeyboardKey key)
108115
{
109-
return IsKeyPressed(static_cast<int>(key));
116+
return IsKeyPressed(static_cast<int>(Inputs::getEquivalentRaylibKey(key)));
110117
}
111118

112119
bool KeyboardInput::isKeyDown(KeyboardKey key)
113120
{
114-
return IsKeyDown(static_cast<int>(key));
121+
return IsKeyDown(static_cast<int>(Inputs::getEquivalentRaylibKey(key)));
115122
}
116123

117124
bool KeyboardInput::isKeyReleased(KeyboardKey key)
118125
{
119-
return IsKeyReleased(static_cast<int>(key));
126+
return IsKeyReleased(static_cast<int>(Inputs::getEquivalentRaylibKey(key)));
120127
}
121128

122129
bool KeyboardInput::isKeyUp(KeyboardKey key)
123130
{
124-
return IsKeyUp(static_cast<int>(key));
131+
return IsKeyUp(static_cast<int>(Inputs::getEquivalentRaylibKey(key)));
125132
}
126133

127134
void KeyboardInput::setExitKey(KeyboardKey key)
128135
{
129-
SetExitKey(static_cast<int>(key));
136+
SetExitKey(static_cast<int>(Inputs::getEquivalentRaylibKey(key)));
130137
}
131138

132139
int KeyboardInput::getKeyPressed()

libs/B-luga-graphics/include/B-luga-graphics/Raylib/Graphics/Graphics.hpp

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#pragma once
99

10+
#include <mutex>
1011
#include <memory>
1112
#include <string>
1213
#include "B-luga-graphics/Raylib/Geometry/Geometry.hpp"
@@ -83,6 +84,8 @@ namespace Raylib {
8384
static void takeScreenshot(const std::string &fileName);
8485
};
8586

87+
bool checkCollisionPointRec(Vector2 point, Rectangle rec);
88+
8689
class KeyboardInput {
8790
public:
8891
static bool isKeyPressed(KeyboardKey key);
@@ -153,26 +156,47 @@ namespace Raylib {
153156
static Color getColor(unsigned int hexValue);
154157
};
155158

159+
class TextureManager {
160+
public:
161+
TextureManager(const TextureManager &) = delete;
162+
TextureManager(TextureManager &&) = delete;
163+
void operator=(const TextureManager &) = delete;
164+
void operator=(TextureManager &&) = delete;
165+
166+
static TextureManager &getInstance();
167+
~TextureManager();
168+
::Texture2D &getTexture(const std::string &fileName);
169+
void unloadTextures();
170+
171+
private:
172+
TextureManager() = default;
173+
std::map<std::string, ::Texture2D> _textures;
174+
std::mutex _mutex;
175+
// NOLINTBEGIN(cppcoreguidelines-avoid-non-const-global-variables)
176+
static TextureManager _instance;
177+
// NOLINTEND(cppcoreguidelines-avoid-non-const-global-variables)
178+
};
179+
156180
class RayImage {
157181
public:
158182
static std::unique_ptr<RayImage> fromFile(const std::string &fileName);
159183
static std::unique_ptr<RayImage> fromColor(int width, int height, Color color);
160184

161185
virtual ~RayImage() = default;
162186

163-
virtual bool isImageReady() = 0;
187+
[[nodiscard]] virtual bool isImageReady() = 0;
164188

165189
virtual void unloadImage() = 0;
166190

167-
virtual int getWidth() const = 0;
191+
[[nodiscard]] virtual int getWidth() const = 0;
168192

169-
virtual int getHeight() const = 0;
193+
[[nodiscard]] virtual int getHeight() const = 0;
170194

171-
virtual int getMipmaps() const = 0;
195+
[[nodiscard]] virtual int getMipmaps() const = 0;
172196

173-
virtual int getFormat() const = 0;
197+
[[nodiscard]] virtual int getFormat() const = 0;
174198

175-
virtual void *getData() = 0;
199+
[[nodiscard]] virtual void *getData() = 0;
176200
};
177201

178202
class Sprite {
@@ -182,19 +206,17 @@ namespace Raylib {
182206

183207
virtual ~Sprite() = default;
184208

185-
virtual void unloadSprite() = 0;
186-
187-
virtual unsigned int getId() const = 0;
209+
[[nodiscard]] virtual unsigned int getId() const = 0;
188210

189-
virtual float getWidth() const = 0;
211+
[[nodiscard]] virtual float getWidth() const = 0;
190212

191-
virtual float getHeight() const = 0;
213+
[[nodiscard]] virtual float getHeight() const = 0;
192214

193-
virtual int getTextureWidth() const = 0;
215+
[[nodiscard]] virtual int getTextureWidth() const = 0;
194216

195-
virtual int getTextureHeight() const = 0;
217+
[[nodiscard]] virtual int getTextureHeight() const = 0;
196218

197-
virtual int getMipmaps() const = 0;
219+
[[nodiscard]] virtual int getMipmaps() const = 0;
198220

199221
virtual int getFormat() const = 0;
200222

@@ -290,21 +312,21 @@ namespace Raylib {
290312

291313
virtual void drawPro(Vector2 origin, float rotation, float spacing) = 0;
292314

293-
virtual float x() const = 0;
315+
[[nodiscard] virtual float x() const = 0;
294316

295-
virtual float y() const = 0;
317+
[[nodiscard] virtual float y() const = 0;
296318

297-
virtual float getFontSize() const = 0;
319+
[[nodiscard] virtual float getFontSize() const = 0;
298320

299321
virtual void setFontSize(float fontSize) = 0;
300322

301-
virtual Vector2 getPosition() const = 0;
323+
[[nodiscard] virtual Vector2 getPosition() const = 0;
302324

303325
virtual void setPixelPosition(Vector2 position) = 0;
304326

305327
virtual void setColor(Color color) = 0;
306328

307-
virtual Color getColor() const = 0;
329+
[[nodiscard] virtual Color getColor() const = 0;
308330

309331
virtual void setCurrentFontSize(float fontSize) = 0;
310332
};

libs/B-luga-graphics/include/B-luga-graphics/Raylib/UnloadRaylib.cpp

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,6 @@ static void unloadMusic(std::size_t id)
2828
}
2929
}
3030

31-
static void unloadSprite(std::size_t id)
32-
{
33-
Registry::components<Raylib::SpriteShared> arrSprite =
34-
Registry::getInstance().getComponents<Raylib::SpriteShared>();
35-
36-
if (arrSprite.exist(id)) {
37-
arrSprite[id]->unloadSprite();
38-
}
39-
}
40-
4131
static void unloadImage(std::size_t id)
4232
{
4333
Registry::components<Raylib::RayImageShared> arrImage = Registry::getInstance().getComponents<Raylib::RayImageShared>();
@@ -51,6 +41,5 @@ void UnloadRaylib::unloadRaylibComponents(std::size_t id)
5141
{
5242
unloadSounds(id);
5343
unloadMusic(id);
54-
unloadSprite(id);
5544
unloadImage(id);
5645
}

0 commit comments

Comments
 (0)