From 7f707e12508d274e6054115f3389a842b982d62c Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 6 Aug 2016 01:09:13 +0200 Subject: [PATCH] Sdk/ParticleEmitterComponent: Update emitter (they are no longer attached to groups) They are no longer attached to groups, groups attach emitters Former-commit-id: fa4c2eb69147c7a19e9d77f952fdeaec0fdafc24 [formerly 981a7cfe37867842b4fe275cae6b04ab9f8a33c9] [formerly bc3c128bdfdb36eaf09f8f8a650c07e00d7e877c [formerly 1dc92772e589d80f59e8dab5d315387c7c57f886]] Former-commit-id: 6420a724b368ab2e72e67154e76566c7eda9f7a5 [formerly b3912e18e589bff75f8f9a1870fbebffe208f653] Former-commit-id: 1598b8cfb892285daee6dac7cd3283ba8447a032 --- .../Components/ParticleEmitterComponent.hpp | 17 +++---- .../Components/ParticleEmitterComponent.inl | 10 ++++ .../Components/ParticleEmitterComponent.cpp | 46 +------------------ 3 files changed, 18 insertions(+), 55 deletions(-) diff --git a/SDK/include/NDK/Components/ParticleEmitterComponent.hpp b/SDK/include/NDK/Components/ParticleEmitterComponent.hpp index 8d93e0495..6ad3e3981 100644 --- a/SDK/include/NDK/Components/ParticleEmitterComponent.hpp +++ b/SDK/include/NDK/Components/ParticleEmitterComponent.hpp @@ -19,28 +19,23 @@ namespace Ndk public: using SetupFunc = std::function; - ParticleEmitterComponent(Nz::ParticleGroup* group); - ParticleEmitterComponent(const ParticleEmitterComponent& emitter); - ParticleEmitterComponent(ParticleEmitterComponent&& emitter); - ~ParticleEmitterComponent(); + inline ParticleEmitterComponent(); + ParticleEmitterComponent(const ParticleEmitterComponent& emitter) = default; + ParticleEmitterComponent(ParticleEmitterComponent&& emitter) = default; + ~ParticleEmitterComponent() = default; + + void Enable(bool active = true); inline bool IsActive() const; - void SetActive(bool active = true); - void SetGroup(Nz::ParticleGroup* group); inline void SetSetupFunc(SetupFunc func); static ComponentIndex componentIndex; private: - void OnParticleGroupRelease(const Nz::ParticleGroup* particleGroup); - void SetupParticles(Nz::ParticleMapper& mapper, unsigned int count) const override; - NazaraSlot(Nz::ParticleGroup, OnParticleGroupRelease, m_particleGroupRelease); - SetupFunc m_setupFunc; - Nz::ParticleGroup* m_particleGroup; bool m_isActive; }; } diff --git a/SDK/include/NDK/Components/ParticleEmitterComponent.inl b/SDK/include/NDK/Components/ParticleEmitterComponent.inl index 6cc9e8c29..342b5e56f 100644 --- a/SDK/include/NDK/Components/ParticleEmitterComponent.inl +++ b/SDK/include/NDK/Components/ParticleEmitterComponent.inl @@ -6,6 +6,16 @@ namespace Ndk { + inline ParticleEmitterComponent::ParticleEmitterComponent() : + m_isActive(true) + { + } + + inline void Ndk::ParticleEmitterComponent::Enable(bool active) + { + m_isActive = active; + } + inline bool ParticleEmitterComponent::IsActive() const { return m_isActive; diff --git a/SDK/src/NDK/Components/ParticleEmitterComponent.cpp b/SDK/src/NDK/Components/ParticleEmitterComponent.cpp index 6a3cfeb7e..2ae4365e6 100644 --- a/SDK/src/NDK/Components/ParticleEmitterComponent.cpp +++ b/SDK/src/NDK/Components/ParticleEmitterComponent.cpp @@ -7,51 +7,9 @@ namespace Ndk { - ParticleEmitterComponent::ParticleEmitterComponent(Nz::ParticleGroup* group) : - m_particleGroup(group), - m_isActive(true) + void ParticleEmitterComponent::SetupParticles(Nz::ParticleMapper& mapper, unsigned int count) const { - if (m_particleGroup) - m_particleGroup->AddEmitter(this); - } - - ParticleEmitterComponent::ParticleEmitterComponent(const ParticleEmitterComponent& emitter) : - m_particleGroup(emitter.m_particleGroup), - m_isActive(emitter.m_isActive) - { - if (m_isActive) - m_particleGroup->AddEmitter(this); - } - - ParticleEmitterComponent::~ParticleEmitterComponent() - { - m_particleGroup->RemoveEmitter(this); - } - - inline void Ndk::ParticleEmitterComponent::SetActive(bool active) - { - if (m_isActive != active) - { - if (active) - m_particleGroup->AddEmitter(this); - else - m_particleGroup->RemoveEmitter(this); - } - } - - void ParticleEmitterComponent::SetGroup(Nz::ParticleGroup* group) - { - if (m_particleGroup) - m_particleGroup->RemoveEmitter(this); - - m_particleGroup = group; - if (m_particleGroup && m_isActive) - m_particleGroup = group; - } - - inline void ParticleEmitterComponent::SetupParticles(Nz::ParticleMapper& mapper, unsigned int count) const - { - if (m_setupFunc) + if (m_isActive && m_setupFunc) m_setupFunc(m_entity, mapper, count); }