aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-07 15:27:28 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-07 15:27:28 +0100
commitbe58cc9342a775c21ec2ee28923414a5c612fe6e (patch)
tree6cfc5f7d4d403482afc5131f77369c99f0da1241
parent97515abfb2859e289df9d65d7106f35159749131 (diff)
add game_object_id_t type
-rw-r--r--src/crepe/Collider.cpp2
-rw-r--r--src/crepe/Collider.h2
-rw-r--r--src/crepe/Component.cpp3
-rw-r--r--src/crepe/Component.h6
-rw-r--r--src/crepe/ComponentManager.cpp2
-rw-r--r--src/crepe/ComponentManager.h8
-rw-r--r--src/crepe/ComponentManager.hpp7
-rw-r--r--src/crepe/api/CircleCollider.h2
-rw-r--r--src/crepe/api/Force.cpp3
-rw-r--r--src/crepe/api/Force.h2
-rw-r--r--src/crepe/api/GameObject.cpp2
-rw-r--r--src/crepe/api/GameObject.h6
-rw-r--r--src/crepe/api/Metadata.cpp5
-rw-r--r--src/crepe/api/Metadata.h6
-rw-r--r--src/crepe/api/ParticleEmitter.cpp4
-rw-r--r--src/crepe/api/ParticleEmitter.h2
-rw-r--r--src/crepe/api/Rigidbody.cpp4
-rw-r--r--src/crepe/api/Rigidbody.h3
-rw-r--r--src/crepe/api/Sprite.cpp2
-rw-r--r--src/crepe/api/Sprite.h3
-rw-r--r--src/crepe/api/Transform.cpp4
-rw-r--r--src/crepe/api/Transform.h4
-rw-r--r--src/crepe/types.h10
23 files changed, 51 insertions, 41 deletions
diff --git a/src/crepe/Collider.cpp b/src/crepe/Collider.cpp
index 13a3f33..bbec488 100644
--- a/src/crepe/Collider.cpp
+++ b/src/crepe/Collider.cpp
@@ -2,4 +2,4 @@
using namespace crepe;
-Collider::Collider(uint32_t gameObjectId) : Component(gameObjectId) {}
+Collider::Collider(game_object_id_t id) : Component(id) {}
diff --git a/src/crepe/Collider.h b/src/crepe/Collider.h
index 68a7d1d..827f83d 100644
--- a/src/crepe/Collider.h
+++ b/src/crepe/Collider.h
@@ -6,7 +6,7 @@ namespace crepe {
class Collider : public Component {
public:
- Collider(uint32_t game_object_id);
+ Collider(game_object_id_t id);
int size;
};
diff --git a/src/crepe/Component.cpp b/src/crepe/Component.cpp
index cdbda67..af439ed 100644
--- a/src/crepe/Component.cpp
+++ b/src/crepe/Component.cpp
@@ -1,5 +1,6 @@
#include "Component.h"
+#include "types.h"
using namespace crepe;
-Component::Component(uint32_t id) : GAME_OBJECT_ID(id) {}
+Component::Component(game_object_id_t id) : GAME_OBJECT_ID(id) {}
diff --git a/src/crepe/Component.h b/src/crepe/Component.h
index 41badc3..ee795f4 100644
--- a/src/crepe/Component.h
+++ b/src/crepe/Component.h
@@ -1,5 +1,7 @@
#pragma once
+#include "types.h"
+
#include <cstdint>
namespace crepe {
@@ -19,7 +21,7 @@ protected:
/**
* \param id The id of the GameObject this component belongs to
*/
- Component(uint32_t id);
+ Component(game_object_id_t id);
public:
virtual ~Component() = default;
@@ -36,7 +38,7 @@ public:
public:
//! The id of the GameObject this component belongs to
- const uint32_t GAME_OBJECT_ID;
+ const game_object_id_t GAME_OBJECT_ID;
//! Whether the component is active
bool active = true;
};
diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp
index 01bc8d7..85149c8 100644
--- a/src/crepe/ComponentManager.cpp
+++ b/src/crepe/ComponentManager.cpp
@@ -9,7 +9,7 @@ ComponentManager & ComponentManager::get_instance() {
return instance;
}
-void ComponentManager::delete_all_components_of_id(uint32_t id) {
+void ComponentManager::delete_all_components_of_id(game_object_id_t id) {
// Loop through all the types (in the unordered_map<>)
for (auto & [type, componentArray] : this->components) {
// Make sure that the id (that we are looking for) is within the boundaries of the vector<>
diff --git a/src/crepe/ComponentManager.h b/src/crepe/ComponentManager.h
index f3b0ace..c8c196c 100644
--- a/src/crepe/ComponentManager.h
+++ b/src/crepe/ComponentManager.h
@@ -43,7 +43,7 @@ public:
* \return The created component
*/
template <typename T, typename... Args>
- T & add_component(uint32_t id, Args &&... args);
+ T & add_component(game_object_id_t id, Args &&... args);
/**
* \brief Delete all components of a specific type and id
*
@@ -53,7 +53,7 @@ public:
* \param id The id of the GameObject this component belongs to
*/
template <typename T>
- void delete_components_by_id(uint32_t id);
+ void delete_components_by_id(game_object_id_t id);
/**
* \brief Delete all components of a specific type
*
@@ -70,7 +70,7 @@ public:
*
* \param id The id of the GameObject this component belongs to
*/
- void delete_all_components_of_id(uint32_t id);
+ void delete_all_components_of_id(game_object_id_t id);
/**
* \brief Delete all components
*
@@ -88,7 +88,7 @@ public:
*/
template <typename T>
std::vector<std::reference_wrapper<T>>
- get_components_by_id(uint32_t id) const;
+ get_components_by_id(game_object_id_t id) const;
/**
* \brief Get all components of a specific type
*
diff --git a/src/crepe/ComponentManager.hpp b/src/crepe/ComponentManager.hpp
index cf9f65a..98efb49 100644
--- a/src/crepe/ComponentManager.hpp
+++ b/src/crepe/ComponentManager.hpp
@@ -3,11 +3,12 @@
#include <type_traits>
#include "ComponentManager.h"
+#include "types.h"
namespace crepe {
template <class T, typename... Args>
-T & ComponentManager::add_component(uint32_t id, Args &&... args) {
+T & ComponentManager::add_component(game_object_id_t id, Args &&... args) {
using namespace std;
static_assert(is_base_of<Component, T>::value,
@@ -51,7 +52,7 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) {
}
template <typename T>
-void ComponentManager::delete_components_by_id(uint32_t id) {
+void ComponentManager::delete_components_by_id(game_object_id_t id) {
using namespace std;
// Determine the type of T (this is used as the key of the unordered_map<>)
@@ -83,7 +84,7 @@ void ComponentManager::delete_components() {
template <typename T>
std::vector<std::reference_wrapper<T>>
-ComponentManager::get_components_by_id(uint32_t id) const {
+ComponentManager::get_components_by_id(game_object_id_t id) const {
using namespace std;
// Determine the type of T (this is used as the key of the unordered_map<>)
diff --git a/src/crepe/api/CircleCollider.h b/src/crepe/api/CircleCollider.h
index 931b012..caa7e43 100644
--- a/src/crepe/api/CircleCollider.h
+++ b/src/crepe/api/CircleCollider.h
@@ -5,7 +5,7 @@ namespace crepe {
class CircleCollider : public Collider {
public:
- CircleCollider(uint32_t game_object_id, int radius)
+ CircleCollider(game_object_id_t game_object_id, int radius)
: Collider(game_object_id), radius(radius) {}
int radius;
};
diff --git a/src/crepe/api/Force.cpp b/src/crepe/api/Force.cpp
index 3c33ad3..63131ac 100644
--- a/src/crepe/api/Force.cpp
+++ b/src/crepe/api/Force.cpp
@@ -4,8 +4,7 @@
namespace crepe {
-Force::Force(uint32_t game_object_id, uint32_t magnitude, uint32_t direction)
- : Component(game_object_id) {
+Force::Force(game_object_id_t id, uint32_t magnitude, uint32_t direction) : Component(id) {
// TODO: A standard angle unit should be established for the entire engine
// and assumed to be the default everywhere. Only conversion functions should
// explicitly contain the unit (i.e. `deg_to_rad()` & `rad_to_deg()`)
diff --git a/src/crepe/api/Force.h b/src/crepe/api/Force.h
index c08a8b9..4a4b5de 100644
--- a/src/crepe/api/Force.h
+++ b/src/crepe/api/Force.h
@@ -8,7 +8,7 @@ namespace crepe {
class Force : public Component {
public:
- Force(uint32_t game_object_id, uint32_t magnitude, uint32_t direction);
+ Force(game_object_id_t id, uint32_t magnitude, uint32_t direction);
int32_t force_x;
int32_t force_y;
diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp
index b1b8f85..e009288 100644
--- a/src/crepe/api/GameObject.cpp
+++ b/src/crepe/api/GameObject.cpp
@@ -6,7 +6,7 @@
using namespace crepe;
using namespace std;
-GameObject::GameObject(uint32_t id, const std::string & name,
+GameObject::GameObject(game_object_id_t id, const std::string & name,
const std::string & tag, const Point & position,
double rotation, double scale)
: ID(id) {
diff --git a/src/crepe/api/GameObject.h b/src/crepe/api/GameObject.h
index 2992787..223d72e 100644
--- a/src/crepe/api/GameObject.h
+++ b/src/crepe/api/GameObject.h
@@ -3,6 +3,8 @@
#include <cstdint>
#include <string>
+#include "types.h"
+
namespace crepe {
class Point;
@@ -27,7 +29,7 @@ public:
* \param rotation The rotation of the GameObject
* \param scale The scale of the GameObject
*/
- GameObject(uint32_t id, const std::string & name, const std::string & tag,
+ GameObject(game_object_id_t id, const std::string & name, const std::string & tag,
const Point & position, double rotation, double scale);
/**
* \brief Set the parent of this GameObject
@@ -55,7 +57,7 @@ public:
public:
//! The id of the GameObject
- const uint32_t ID;
+ const game_object_id_t ID;
};
} // namespace crepe
diff --git a/src/crepe/api/Metadata.cpp b/src/crepe/api/Metadata.cpp
index 55d9ae2..ab9612b 100644
--- a/src/crepe/api/Metadata.cpp
+++ b/src/crepe/api/Metadata.cpp
@@ -3,6 +3,5 @@
using namespace crepe;
using namespace std;
-Metadata::Metadata(uint32_t game_object_id, const string & name,
- const string & tag)
- : Component(game_object_id), NAME(name), TAG(tag) {}
+Metadata::Metadata(game_object_id_t id, const string & name, const string & tag)
+ : Component(id), NAME(name), TAG(tag) {}
diff --git a/src/crepe/api/Metadata.h b/src/crepe/api/Metadata.h
index fdbed41..f5e5c55 100644
--- a/src/crepe/api/Metadata.h
+++ b/src/crepe/api/Metadata.h
@@ -20,7 +20,7 @@ public:
* \param name The name of the GameObject
* \param tag The tag of the GameObject
*/
- Metadata(uint32_t game_object_id, const std::string & name,
+ Metadata(game_object_id_t id, const std::string & name,
const std::string & tag);
/**
* \brief Get the maximum number of instances for this component
@@ -35,9 +35,9 @@ public:
//! The tag of the GameObject
const std::string TAG;
//! The id of the parent GameObject (-1 if no parent)
- uint32_t parent = -1;
+ game_object_id_t parent = -1;
//! The ids of the children GameObjects
- std::vector<uint32_t> children;
+ std::vector<game_object_id_t> children;
};
} // namespace crepe
diff --git a/src/crepe/api/ParticleEmitter.cpp b/src/crepe/api/ParticleEmitter.cpp
index 0b3a9ee..6094732 100644
--- a/src/crepe/api/ParticleEmitter.cpp
+++ b/src/crepe/api/ParticleEmitter.cpp
@@ -6,12 +6,12 @@
using namespace crepe;
-ParticleEmitter::ParticleEmitter(uint32_t game_object_id,
+ParticleEmitter::ParticleEmitter(game_object_id_t id,
uint32_t max_particles, uint32_t emission_rate,
uint32_t speed, uint32_t speed_offset,
uint32_t angle, uint32_t angleOffset,
float begin_lifespan, float end_lifespan)
- : Component(game_object_id), max_particles(max_particles),
+ : Component(id), max_particles(max_particles),
emission_rate(emission_rate), speed(speed), speed_offset(speed_offset),
position{0, 0}, begin_lifespan(begin_lifespan),
end_lifespan(end_lifespan) {
diff --git a/src/crepe/api/ParticleEmitter.h b/src/crepe/api/ParticleEmitter.h
index 2e2e95b..5939723 100644
--- a/src/crepe/api/ParticleEmitter.h
+++ b/src/crepe/api/ParticleEmitter.h
@@ -10,7 +10,7 @@ namespace crepe {
class ParticleEmitter : public Component {
public:
- ParticleEmitter(uint32_t game_object_id, uint32_t max_particles,
+ ParticleEmitter(game_object_id_t id, uint32_t max_particles,
uint32_t emission_rate, uint32_t speed,
uint32_t speed_offset, uint32_t angle, uint32_t angleOffset,
float begin_lifespan, float end_lifespan);
diff --git a/src/crepe/api/Rigidbody.cpp b/src/crepe/api/Rigidbody.cpp
index 0a6262a..1e76346 100644
--- a/src/crepe/api/Rigidbody.cpp
+++ b/src/crepe/api/Rigidbody.cpp
@@ -2,7 +2,7 @@
using namespace crepe;
-Rigidbody::Rigidbody(uint32_t game_object_id, int mass, int gravity_scale,
+Rigidbody::Rigidbody(game_object_id_t id, int mass, int gravity_scale,
BodyType bodyType)
- : Component(game_object_id), mass(mass), gravity_scale(gravity_scale),
+ : Component(id), mass(mass), gravity_scale(gravity_scale),
body_type(bodyType) {}
diff --git a/src/crepe/api/Rigidbody.h b/src/crepe/api/Rigidbody.h
index 518ed94..02ced2e 100644
--- a/src/crepe/api/Rigidbody.h
+++ b/src/crepe/api/Rigidbody.h
@@ -18,8 +18,7 @@ enum class BodyType {
class Rigidbody : public Component {
public:
- Rigidbody(uint32_t game_object_id, int mass, int gravity_scale,
- BodyType body_type);
+ Rigidbody(game_object_id_t id, int mass, int gravity_scale, BodyType body_type);
int32_t velocity_x;
int32_t velocity_y;
int mass;
diff --git a/src/crepe/api/Sprite.cpp b/src/crepe/api/Sprite.cpp
index 3dd44f2..7e810b5 100644
--- a/src/crepe/api/Sprite.cpp
+++ b/src/crepe/api/Sprite.cpp
@@ -10,7 +10,7 @@
using namespace std;
using namespace crepe;
-Sprite::Sprite(uint32_t id, shared_ptr<Texture> image, const Color & color,
+Sprite::Sprite(game_object_id_t id, shared_ptr<Texture> image, const Color & color,
const FlipSettings & flip)
: Component(id), color(color), flip(flip), sprite_image(image) {
dbg_trace();
diff --git a/src/crepe/api/Sprite.h b/src/crepe/api/Sprite.h
index bdb4da9..28078cd 100644
--- a/src/crepe/api/Sprite.h
+++ b/src/crepe/api/Sprite.h
@@ -19,8 +19,7 @@ struct FlipSettings {
class Sprite : public Component {
public:
- Sprite(uint32_t game_id, std::shared_ptr<Texture> image,
- const Color & color, const FlipSettings & flip);
+ Sprite(game_object_id_t id, std::shared_ptr<Texture> image, const Color & color, const FlipSettings & flip);
~Sprite();
std::shared_ptr<Texture> sprite_image;
Color color;
diff --git a/src/crepe/api/Transform.cpp b/src/crepe/api/Transform.cpp
index be1769e..5fb66b3 100644
--- a/src/crepe/api/Transform.cpp
+++ b/src/crepe/api/Transform.cpp
@@ -6,8 +6,8 @@
using namespace crepe;
-Transform::Transform(uint32_t game_id, const Point & point, double rot,
+Transform::Transform(game_object_id_t id, const Point & point, double rot,
double scale)
- : Component(game_id), position(point), rotation(rot), scale(scale) {
+ : Component(id), position(point), rotation(rot), scale(scale) {
dbg_trace();
}
diff --git a/src/crepe/api/Transform.h b/src/crepe/api/Transform.h
index 69ea48f..1104e99 100644
--- a/src/crepe/api/Transform.h
+++ b/src/crepe/api/Transform.h
@@ -1,7 +1,5 @@
#pragma once
-#include <cstdint>
-
#include "api/Point.h"
#include "Component.h"
@@ -22,7 +20,7 @@ public:
* \param rot The rotation of the GameObject
* \param scale The scale of the GameObject
*/
- Transform(uint32_t id, const Point & point, double rot, double scale);
+ Transform(game_object_id_t id, const Point & point, double rot, double scale);
/**
* \brief Get the maximum number of instances for this component
*
diff --git a/src/crepe/types.h b/src/crepe/types.h
new file mode 100644
index 0000000..5ae2c81
--- /dev/null
+++ b/src/crepe/types.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include <cstdint>
+
+namespace crepe {
+
+typedef uint32_t game_object_id_t;
+
+}
+