diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-28 13:13:54 +0100 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-28 13:13:54 +0100 | 
| commit | 7a07c56d572a6f30d0aa611bd566197bc04c3b33 (patch) | |
| tree | 75a5c234c48dad5c35d4773409bd6efcd4514dc3 | |
| parent | 63bce3dd21c82e2b4e45c07934d5a26684cdaa93 (diff) | |
add more documentation to Mediator + fix system mediator use
| -rw-r--r-- | src/crepe/manager/Mediator.h | 6 | ||||
| -rw-r--r-- | src/crepe/system/AnimatorSystem.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/system/ParticleSystem.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/system/PhysicsSystem.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/system/RenderSystem.cpp | 6 | ||||
| -rw-r--r-- | src/crepe/system/ScriptSystem.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/system/System.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/system/System.h | 2 | 
8 files changed, 14 insertions, 10 deletions
| diff --git a/src/crepe/manager/Mediator.h b/src/crepe/manager/Mediator.h index ce35d5c..a91509e 100644 --- a/src/crepe/manager/Mediator.h +++ b/src/crepe/manager/Mediator.h @@ -17,7 +17,11 @@ class SceneManager;   * pass specific references through dependency injection. All references on this struct   * *should* be explicitly checked for availability as this struct does not guarantee anything.   * - * \todo Find better solution + * \note Dereferencing members of this struct should be deferred. If you are a user of this + * class, keep a reference to this mediator instead of just picking references from it when you + * receive an instance. + * + * \warning This class should never be directly accessible from the API   */  struct Mediator {  	OptionalRef<ComponentManager> component_manager; diff --git a/src/crepe/system/AnimatorSystem.cpp b/src/crepe/system/AnimatorSystem.cpp index 57ee6e2..8bb6465 100644 --- a/src/crepe/system/AnimatorSystem.cpp +++ b/src/crepe/system/AnimatorSystem.cpp @@ -9,7 +9,7 @@  using namespace crepe;  void AnimatorSystem::update() { -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	RefVector<Animator> animations = mgr.get_components_by_type<Animator>(); diff --git a/src/crepe/system/ParticleSystem.cpp b/src/crepe/system/ParticleSystem.cpp index ebae56b..b14c52f 100644 --- a/src/crepe/system/ParticleSystem.cpp +++ b/src/crepe/system/ParticleSystem.cpp @@ -12,7 +12,7 @@ using namespace crepe;  void ParticleSystem::update() {  	// Get all emitters -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	RefVector<ParticleEmitter> emitters = mgr.get_components_by_type<ParticleEmitter>();  	for (ParticleEmitter & emitter : emitters) { diff --git a/src/crepe/system/PhysicsSystem.cpp b/src/crepe/system/PhysicsSystem.cpp index 071ca21..eba9dfa 100644 --- a/src/crepe/system/PhysicsSystem.cpp +++ b/src/crepe/system/PhysicsSystem.cpp @@ -11,7 +11,7 @@  using namespace crepe;  void PhysicsSystem::update() { -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	RefVector<Rigidbody> rigidbodies = mgr.get_components_by_type<Rigidbody>();  	RefVector<Transform> transforms = mgr.get_components_by_type<Transform>(); diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp index ea60a95..4e97b3e 100644 --- a/src/crepe/system/RenderSystem.cpp +++ b/src/crepe/system/RenderSystem.cpp @@ -22,7 +22,7 @@ void RenderSystem::clear_screen() { this->context.clear_screen(); }  void RenderSystem::present_screen() { this->context.present_screen(); }  const Camera & RenderSystem::update_camera() { -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	RefVector<Camera> cameras = mgr.get_components_by_type<Camera>(); @@ -62,7 +62,7 @@ void RenderSystem::update() {  bool RenderSystem::render_particle(const Sprite & sprite, const Camera & cam,  								   const double & scale) { -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	vector<reference_wrapper<ParticleEmitter>> emitters  		= mgr.get_components_by_id<ParticleEmitter>(sprite.game_object_id); @@ -102,7 +102,7 @@ void RenderSystem::render_normal(const Sprite & sprite, const Camera & cam,  }  void RenderSystem::render() { -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	const Camera & cam = this->update_camera();  	RefVector<Sprite> sprites = mgr.get_components_by_type<Sprite>(); diff --git a/src/crepe/system/ScriptSystem.cpp b/src/crepe/system/ScriptSystem.cpp index 7ecbe78..2e16eb0 100644 --- a/src/crepe/system/ScriptSystem.cpp +++ b/src/crepe/system/ScriptSystem.cpp @@ -10,7 +10,7 @@ using namespace crepe;  void ScriptSystem::update() {  	dbg_trace(); -	ComponentManager & mgr = this->component_manager; +	ComponentManager & mgr = this->mediator.component_manager;  	RefVector<BehaviorScript> behavior_scripts = mgr.get_components_by_type<BehaviorScript>();  	for (BehaviorScript & behavior_script : behavior_scripts) { diff --git a/src/crepe/system/System.cpp b/src/crepe/system/System.cpp index 392d920..f68549b 100644 --- a/src/crepe/system/System.cpp +++ b/src/crepe/system/System.cpp @@ -4,4 +4,4 @@  using namespace crepe; -System::System(const Mediator & mediator) : component_manager(mediator.component_manager) { dbg_trace(); } +System::System(const Mediator & mediator) : mediator(mediator) { dbg_trace(); } diff --git a/src/crepe/system/System.h b/src/crepe/system/System.h index 92bfd50..4e7fc6d 100644 --- a/src/crepe/system/System.h +++ b/src/crepe/system/System.h @@ -25,7 +25,7 @@ public:  	virtual ~System() = default;  protected: -	ComponentManager & component_manager; +	const Mediator & mediator;  };  } // namespace crepe |