diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-07 15:27:28 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-07 15:27:28 +0100 |
commit | be58cc9342a775c21ec2ee28923414a5c612fe6e (patch) | |
tree | 6cfc5f7d4d403482afc5131f77369c99f0da1241 | |
parent | 97515abfb2859e289df9d65d7106f35159749131 (diff) |
add game_object_id_t type
-rw-r--r-- | src/crepe/Collider.cpp | 2 | ||||
-rw-r--r-- | src/crepe/Collider.h | 2 | ||||
-rw-r--r-- | src/crepe/Component.cpp | 3 | ||||
-rw-r--r-- | src/crepe/Component.h | 6 | ||||
-rw-r--r-- | src/crepe/ComponentManager.cpp | 2 | ||||
-rw-r--r-- | src/crepe/ComponentManager.h | 8 | ||||
-rw-r--r-- | src/crepe/ComponentManager.hpp | 7 | ||||
-rw-r--r-- | src/crepe/api/CircleCollider.h | 2 | ||||
-rw-r--r-- | src/crepe/api/Force.cpp | 3 | ||||
-rw-r--r-- | src/crepe/api/Force.h | 2 | ||||
-rw-r--r-- | src/crepe/api/GameObject.cpp | 2 | ||||
-rw-r--r-- | src/crepe/api/GameObject.h | 6 | ||||
-rw-r--r-- | src/crepe/api/Metadata.cpp | 5 | ||||
-rw-r--r-- | src/crepe/api/Metadata.h | 6 | ||||
-rw-r--r-- | src/crepe/api/ParticleEmitter.cpp | 4 | ||||
-rw-r--r-- | src/crepe/api/ParticleEmitter.h | 2 | ||||
-rw-r--r-- | src/crepe/api/Rigidbody.cpp | 4 | ||||
-rw-r--r-- | src/crepe/api/Rigidbody.h | 3 | ||||
-rw-r--r-- | src/crepe/api/Sprite.cpp | 2 | ||||
-rw-r--r-- | src/crepe/api/Sprite.h | 3 | ||||
-rw-r--r-- | src/crepe/api/Transform.cpp | 4 | ||||
-rw-r--r-- | src/crepe/api/Transform.h | 4 | ||||
-rw-r--r-- | src/crepe/types.h | 10 |
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; + +} + |