r-type
0.0.0
R-Type main
Loading...
Searching...
No Matches
Component.hpp
Go to the documentation of this file.
1
///
2
/// @file Component.hpp
3
/// @brief This file contains the component definitions
4
/// @namespace ecs
5
///
6
7
#pragma once
8
9
#include <string>
10
11
namespace
ecs
12
{
13
struct
IComponent
14
{
15
std::string
id
;
16
};
17
struct
Audio
final :
IComponent
18
{
19
std::string
path
;
20
float
volume
;
21
bool
loop
;
22
bool
play
;
23
};
24
struct
Color
final :
IComponent
25
{
26
unsigned
char
r
{};
27
unsigned
char
g
{};
28
unsigned
char
b
{};
29
unsigned
char
a
{};
30
};
31
struct
Font
final :
IComponent
32
{
33
std::string
path
;
34
};
35
struct
Mob
final :
IComponent
36
{
37
// bool is_alive{};
38
};
39
struct
Player
final :
IComponent
40
{
41
bool
is_cli
{};
42
// bool is_alive{};
43
};
44
struct
Pixel
final :
IComponent
45
{
46
};
47
struct
Rect
final :
IComponent
48
{
// TODO(bobis33): remove, only used for texture actually
49
float
pos_x
{},
pos_y
{};
50
int
size_x
{},
size_y
{};
51
};
52
struct
Scale
final :
IComponent
53
{
54
float
x
{},
y
{};
55
};
56
struct
Text
final :
IComponent
57
{
58
std::string
content
;
59
unsigned
int
font_size
;
60
};
61
struct
Texture
final :
IComponent
62
{
63
std::string
path
;
64
// float rect_pos_x{}, rect_pos_y{};
65
// int rect_size_x{}, rect_size_y{};
66
};
67
struct
Transform
final :
IComponent
68
{
69
float
x
{},
y
{};
70
float
rotation
{};
71
};
72
struct
Velocity
final :
IComponent
73
{
74
float
x
{},
y
{};
75
};
76
struct
Animation
final :
IComponent
77
{
78
int
current_frame
{};
79
int
total_frames
{};
80
float
frame_duration
{};
81
float
current_time
{};
82
int
frame_width
{};
83
int
frame_height
{};
84
int
frames_per_row
{};
85
};
86
struct
Projectile
final :
IComponent
87
{
88
enum
Type
89
{
90
BASIC
,
91
SUPERCHARGED
92
};
93
Type
type
;
94
float
damage
;
95
float
lifetime
;
96
float
current_lifetime
;
97
};
98
99
struct
BeamCharge
final :
IComponent
100
{
101
float
current_charge
;
102
float
max_charge
;
103
};
104
105
struct
LoadingAnimation
final :
IComponent
106
{
107
int
current_frame
;
108
int
total_frames
;
109
float
frame_duration
;
110
float
current_time
;
111
float
frame_width
;
112
float
frame_height
;
113
int
frames_per_row
;
114
};
115
116
struct
Enemy
final :
IComponent
117
{
118
float
health
;
119
float
max_health
;
120
float
damage
;
121
float
speed
;
122
float
last_shot_time
;
123
float
shoot_cooldown
;
124
};
125
126
struct
Asteroid
final :
IComponent
127
{
128
enum
Size
129
{
130
SMALL
,
131
MEDIUM
,
132
LARGE
133
};
134
Size
size
;
135
float
rotation_speed
;
136
float
health
;
137
};
138
139
struct
Explosion
final :
IComponent
140
{
141
int
current_frame
;
142
int
total_frames
;
143
float
frame_duration
;
144
float
current_time
;
145
float
frame_width
;
146
float
frame_height
;
147
int
frames_per_row
;
148
float
lifetime
;
149
float
current_lifetime
;
150
};
151
152
struct
Hitbox
final :
IComponent
153
{
154
float
radius
;
155
};
156
157
}
// namespace ecs
ecs
ecs::Animation
Definition
Component.hpp:77
ecs::Animation::frame_width
int frame_width
Definition
Component.hpp:82
ecs::Animation::frames_per_row
int frames_per_row
Definition
Component.hpp:84
ecs::Animation::total_frames
int total_frames
Definition
Component.hpp:79
ecs::Animation::frame_duration
float frame_duration
Definition
Component.hpp:80
ecs::Animation::current_frame
int current_frame
Definition
Component.hpp:78
ecs::Animation::current_time
float current_time
Definition
Component.hpp:81
ecs::Animation::frame_height
int frame_height
Definition
Component.hpp:83
ecs::Asteroid
Definition
Component.hpp:127
ecs::Asteroid::rotation_speed
float rotation_speed
Definition
Component.hpp:135
ecs::Asteroid::size
Size size
Definition
Component.hpp:134
ecs::Asteroid::health
float health
Definition
Component.hpp:136
ecs::Asteroid::Size
Size
Definition
Component.hpp:129
ecs::Asteroid::SMALL
@ SMALL
Definition
Component.hpp:130
ecs::Asteroid::MEDIUM
@ MEDIUM
Definition
Component.hpp:131
ecs::Asteroid::LARGE
@ LARGE
Definition
Component.hpp:132
ecs::Audio
Definition
Component.hpp:18
ecs::Audio::loop
bool loop
Definition
Component.hpp:21
ecs::Audio::play
bool play
Definition
Component.hpp:22
ecs::Audio::path
std::string path
Definition
Component.hpp:19
ecs::Audio::volume
float volume
Definition
Component.hpp:20
ecs::BeamCharge
Definition
Component.hpp:100
ecs::BeamCharge::max_charge
float max_charge
Definition
Component.hpp:102
ecs::BeamCharge::current_charge
float current_charge
Definition
Component.hpp:101
ecs::Color
Definition
Component.hpp:25
ecs::Color::a
unsigned char a
Definition
Component.hpp:29
ecs::Color::r
unsigned char r
Definition
Component.hpp:26
ecs::Color::g
unsigned char g
Definition
Component.hpp:27
ecs::Color::b
unsigned char b
Definition
Component.hpp:28
ecs::Enemy
Definition
Component.hpp:117
ecs::Enemy::health
float health
Definition
Component.hpp:118
ecs::Enemy::shoot_cooldown
float shoot_cooldown
Definition
Component.hpp:123
ecs::Enemy::speed
float speed
Definition
Component.hpp:121
ecs::Enemy::max_health
float max_health
Definition
Component.hpp:119
ecs::Enemy::last_shot_time
float last_shot_time
Definition
Component.hpp:122
ecs::Enemy::damage
float damage
Definition
Component.hpp:120
ecs::Explosion
Definition
Component.hpp:140
ecs::Explosion::current_lifetime
float current_lifetime
Definition
Component.hpp:149
ecs::Explosion::frame_height
float frame_height
Definition
Component.hpp:146
ecs::Explosion::lifetime
float lifetime
Definition
Component.hpp:148
ecs::Explosion::current_frame
int current_frame
Definition
Component.hpp:141
ecs::Explosion::frame_width
float frame_width
Definition
Component.hpp:145
ecs::Explosion::frames_per_row
int frames_per_row
Definition
Component.hpp:147
ecs::Explosion::current_time
float current_time
Definition
Component.hpp:144
ecs::Explosion::total_frames
int total_frames
Definition
Component.hpp:142
ecs::Explosion::frame_duration
float frame_duration
Definition
Component.hpp:143
ecs::Font
Definition
Component.hpp:32
ecs::Font::path
std::string path
Definition
Component.hpp:33
ecs::Hitbox
Definition
Component.hpp:153
ecs::Hitbox::radius
float radius
Definition
Component.hpp:154
ecs::IComponent
Definition
Component.hpp:14
ecs::IComponent::id
std::string id
Definition
Component.hpp:15
ecs::LoadingAnimation
Definition
Component.hpp:106
ecs::LoadingAnimation::frame_height
float frame_height
Definition
Component.hpp:112
ecs::LoadingAnimation::frame_width
float frame_width
Definition
Component.hpp:111
ecs::LoadingAnimation::current_time
float current_time
Definition
Component.hpp:110
ecs::LoadingAnimation::total_frames
int total_frames
Definition
Component.hpp:108
ecs::LoadingAnimation::current_frame
int current_frame
Definition
Component.hpp:107
ecs::LoadingAnimation::frames_per_row
int frames_per_row
Definition
Component.hpp:113
ecs::LoadingAnimation::frame_duration
float frame_duration
Definition
Component.hpp:109
ecs::Mob
Definition
Component.hpp:36
ecs::Pixel
Definition
Component.hpp:45
ecs::Player
Definition
Component.hpp:40
ecs::Player::is_cli
bool is_cli
Definition
Component.hpp:41
ecs::Projectile
Definition
Component.hpp:87
ecs::Projectile::lifetime
float lifetime
Definition
Component.hpp:95
ecs::Projectile::type
Type type
Definition
Component.hpp:93
ecs::Projectile::current_lifetime
float current_lifetime
Definition
Component.hpp:96
ecs::Projectile::Type
Type
Definition
Component.hpp:89
ecs::Projectile::SUPERCHARGED
@ SUPERCHARGED
Definition
Component.hpp:91
ecs::Projectile::BASIC
@ BASIC
Definition
Component.hpp:90
ecs::Projectile::damage
float damage
Definition
Component.hpp:94
ecs::Rect
Definition
Component.hpp:48
ecs::Rect::pos_y
float pos_y
Definition
Component.hpp:49
ecs::Rect::size_y
int size_y
Definition
Component.hpp:50
ecs::Rect::size_x
int size_x
Definition
Component.hpp:50
ecs::Rect::pos_x
float pos_x
Definition
Component.hpp:49
ecs::Scale
Definition
Component.hpp:53
ecs::Scale::x
float x
Definition
Component.hpp:54
ecs::Scale::y
float y
Definition
Component.hpp:54
ecs::Text
Definition
Component.hpp:57
ecs::Text::font_size
unsigned int font_size
Definition
Component.hpp:59
ecs::Text::content
std::string content
Definition
Component.hpp:58
ecs::Texture
Definition
Component.hpp:62
ecs::Texture::path
std::string path
Definition
Component.hpp:63
ecs::Transform
Definition
Component.hpp:68
ecs::Transform::x
float x
Definition
Component.hpp:69
ecs::Transform::y
float y
Definition
Component.hpp:69
ecs::Transform::rotation
float rotation
Definition
Component.hpp:70
ecs::Velocity
Definition
Component.hpp:73
ecs::Velocity::x
float x
Definition
Component.hpp:74
ecs::Velocity::y
float y
Definition
Component.hpp:74
modules
ECS
include
ECS
Component.hpp
Generated by
1.11.0