SDK/ParticleGroupComponent: Add [Add|Remove]Emitter methods taking an entity

The entity must have a ParticleEmitterComponent


Former-commit-id: 4b6398f047dfee8d04d94f15634b9038078a609f [formerly 36b19eaef4fea6c2d16268c03a369c4797328693] [formerly c8a88f2feb4f80f88899d0ec8c3c0ff1bfad7723 [formerly dd95678311adfaa838dec8a31582f034e6321912]]
Former-commit-id: 11cd0fb53279a586f39bafcf205289a945e4c568 [formerly f698d4deae6a0a0a06759acef864af778b7967ca]
Former-commit-id: 660b25d6021b2f770d8d2c94240dbdacfa41f48a
This commit is contained in:
Lynix 2016-08-10 22:52:29 +02:00
parent 5ebff77ef0
commit 0668988a0f
2 changed files with 28 additions and 1 deletions

View File

@ -25,6 +25,12 @@ namespace Ndk
ParticleGroupComponent(const ParticleGroupComponent&) = default; ParticleGroupComponent(const ParticleGroupComponent&) = default;
~ParticleGroupComponent() = default; ~ParticleGroupComponent() = default;
void AddEmitter(Entity* emitter);
using ParticleGroup::AddEmitter;
void RemoveEmitter(Entity* emitter);
using ParticleGroup::RemoveEmitter;
static ComponentIndex componentIndex; static ComponentIndex componentIndex;
}; };
} }

View File

@ -1,8 +1,11 @@
#include "ParticleGroupComponent.hpp"
// Copyright (C) 2015 Jérôme Leclercq // Copyright (C) 2015 Jérôme Leclercq
// This file is part of the "Nazara Development Kit" // This file is part of the "Nazara Development Kit"
// For conditions of distribution and use, see copyright notice in Prerequesites.hpp // For conditions of distribution and use, see copyright notice in Prerequesites.hpp
#include <NDK/Components/ParticleGroupComponent.hpp>
#include <NDK/Components/ParticleEmitterComponent.hpp>
#include <Nazara/Core/Error.hpp>
namespace Ndk namespace Ndk
{ {
inline ParticleGroupComponent::ParticleGroupComponent(unsigned int maxParticleCount, Nz::ParticleLayout layout) : inline ParticleGroupComponent::ParticleGroupComponent(unsigned int maxParticleCount, Nz::ParticleLayout layout) :
@ -14,4 +17,22 @@ namespace Ndk
ParticleGroup(maxParticleCount, std::move(declaration)) ParticleGroup(maxParticleCount, std::move(declaration))
{ {
} }
inline void ParticleGroupComponent::AddEmitter(Entity* emitter)
{
NazaraAssert(emitter && emitter->IsValid(), "Invalid entity");
NazaraAssert(emitter->HasComponent<ParticleEmitterComponent>(), "Entity must have a NodeComponent");
auto& emitterComponent = emitter->GetComponent<ParticleEmitterComponent>();
ParticleGroup::AddEmitter(&emitterComponent);
}
inline void ParticleGroupComponent::RemoveEmitter(Entity* emitter)
{
NazaraAssert(emitter && emitter->IsValid(), "Invalid entity");
NazaraAssert(emitter->HasComponent<ParticleEmitterComponent>(), "Entity must have a NodeComponent");
auto& emitterComponent = emitter->GetComponent<ParticleEmitterComponent>();
ParticleGroup::RemoveEmitter(&emitterComponent);
}
} }