Tramway SDK
particle.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_COMPONENTS_PARTICLECOMPONENT_H
4#define TRAM_SDK_COMPONENTS_PARTICLECOMPONENT_H
5
6#include <render/render.h>
7#include <render/sprite.h>
8
9namespace tram {
10
12public:
13 struct Particle {
16 uint32_t age;
17 };
18
21 inline name_t GetSprite() { return sprite->GetName(); }
22
24 this->sprite = sprite;
25 }
26
27 void Start();
28
29 void Update();
30
32
33 void UpdateLocation(vec3 nlocation){
34 location = nlocation;
36 }
37
38 void EventHandler(Event &event){return;}
39
40 void EmitParticle (const Particle& particle);
41
42 // put these behind getter/setter methods, maybe?
43 uint32_t emission_rate = 1;
44 uint32_t particle_max_age = 120;
45 vec3 gravity = vec3(0.0f, -0.005f, 0.0f);
46 vec3 initial_velocity = vec3(0.0f, 0.15f, 0.0f);
48protected:
49 std::vector<Particle> particles;
51
53
56};
57
58}
59
60#endif // TRAM_SDK_COMPONENTS_PARTICLECOMPONENT_H
Component base class.
Definition: entitycomponent.h:16
Provides amusing graphical effects.
Definition: particle.h:11
~ParticleComponent()
Definition: particle.cpp:26
ResourceProxy< Render::Sprite > sprite
Definition: particle.h:50
name_t GetSprite()
Definition: particle.h:21
void EmitParticle(const Particle &particle)
Definition: particle.cpp:32
uint32_t emission_rate
Definition: particle.h:43
vec3 initial_velocity
Definition: particle.h:46
vec3 gravity
Definition: particle.h:45
ParticleComponent()
Definition: particle.h:19
void EventHandler(Event &event)
Definition: particle.h:38
void UpdateRenderListObject()
Definition: particle.cpp:87
void SetSprite(Render::Sprite *sprite)
Definition: particle.h:23
void Update()
Definition: particle.cpp:54
uint32_t particle_max_age
Definition: particle.h:44
Render::drawlistentry_t draw_list_entry
Definition: particle.h:54
vec3 location
Definition: particle.h:52
void Start()
Definition: particle.cpp:36
float initial_velocity_randomness
Definition: particle.h:47
std::vector< Particle > particles
Definition: particle.h:49
Render::vertexarray_t vertex_array
Definition: particle.h:55
void UpdateLocation(vec3 nlocation)
Definition: particle.h:33
Sprite resource.
Definition: sprite.h:23
Definition: resource.h:46
Serialization, i.e.
glm::vec3 vec3
Definition: math.h:11
Event data.
Definition: event.h:24
Definition: particle.h:13
uint32_t age
Definition: particle.h:16
vec3 coords
Definition: particle.h:14
vec3 velocity
Definition: particle.h:15
Definition: render.h:142
Definition: render.h:102
Interned string type.
Definition: uid.h:10