aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/ParticleEmitter.cpp
blob: 9a703340f566cd062c27f493a369e076e9be8704 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "ParticleEmitter.h"
#include "api/Sprite.h"

using namespace crepe;
using namespace std;

ParticleEmitter::ParticleEmitter(game_object_id_t game_object_id, const Sprite & sprite,
								 const Data & data)
	: Component(game_object_id),
	  sprite(sprite),
	  data(data) {
	for (size_t i = 0; i < this->data.max_particles; i++) {
		this->particles.emplace_back();
	}
}

unique_ptr<Component> ParticleEmitter::save() const {
	return unique_ptr<Component>{new ParticleEmitter(*this)};
}

void ParticleEmitter::restore(const Component & snapshot) {
	*this = static_cast<const ParticleEmitter &>(snapshot);
}

ParticleEmitter & ParticleEmitter::operator=(const ParticleEmitter & other) {
	this->particles = other.particles;
	return *this;
}