Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
builder_i.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include "../filter/builder_i.hpp"
9
10namespace flecs {
11
16template<typename Base, typename ... Components>
17struct alert_builder_i : filter_builder_i<Base, Components ...> {
18private:
19 using BaseClass = filter_builder_i<Base, Components ...>;
20
21public:
23 : BaseClass(nullptr)
24 , m_desc(nullptr) { }
25
26 alert_builder_i(ecs_alert_desc_t *desc, int32_t term_index = 0)
27 : BaseClass(&desc->filter, term_index)
28 , m_desc(desc) { }
29
34 Base& message(const char *message) {
35 m_desc->message = message;
36 return *this;
37 }
38
43 Base& brief(const char *brief) {
44 m_desc->brief = brief;
45 return *this;
46 }
47
52 Base& severity(flecs::entity_t kind) {
53 m_desc->severity = kind;
54 return *this;
55 }
56
61 template <typename Severity>
62 Base& severity() {
63 return severity(_::cpp_type<Severity>::id(world_v()));
64 }
65
66protected:
67 virtual flecs::world_t* world_v() = 0;
68
69private:
70 operator Base&() {
71 return *static_cast<Base*>(this);
72 }
73
74 ecs_alert_desc_t *m_desc;
75};
76
77}
Alert builder interface.
Definition builder_i.hpp:17
Base & message(const char *message)
Alert message.
Definition builder_i.hpp:34
Base & severity()
Set severity of alert (default is Error)
Definition builder_i.hpp:62
Base & severity(flecs::entity_t kind)
Set severity of alert (default is Error)
Definition builder_i.hpp:52
Base & brief(const char *brief)
Set brief description for alert.
Definition builder_i.hpp:43
Filter builder interface.
Definition builder_i.hpp:18