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; + +} + |