载入中...
搜索中...
未找到
RuleTypes.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
9#include "common/Value.h"
10#include "decision/Condition.h"
11
12#include <cstdint>
13#include <string>
14#include <vector>
15
16namespace eve::emergence {
17
19enum class FireMode : std::uint8_t {
21 Rising = 0,
23 Level = 1,
24};
25
31
39 std::string id;
40 int priority = 0;
42 bool once = false;
43 std::uint64_t cooldownTicks = 0;
45 std::vector<std::string> watchKeys;
46 std::vector<EmergenceAction> actions;
47};
48
50struct Activation {
51 std::uint64_t sequence = 0;
52 std::uint64_t tick = 0;
53 std::string ruleId;
54 int priority = 0;
55 std::vector<EmergenceAction> actions;
56};
57
58} // namespace eve::emergence
Pure, explainable condition trees shared by gameplay domains.
Owning, renderer-independent dynamic values.
The canonical owning dynamic value used by data-facing protocols.
Definition Value.h:31
std::map< std::string, Value > Object
Definition Value.h:34
Immutable condition AST node.
Definition Condition.h:195
FireMode
When a watched rule may emit an activation.
Definition RuleTypes.h:19
@ Rising
Fire only on false→true edges.
@ Level
Fire whenever woken while the condition currently passes.
One scheduled activation produced by drain().
Definition RuleTypes.h:50
std::vector< EmergenceAction > actions
Definition RuleTypes.h:55
One deferred side-effect descriptor; domains interpret kind.
Definition RuleTypes.h:27
One immutable rule definition owned by the catalogue.
Definition RuleTypes.h:38
std::vector< std::string > watchKeys
Definition RuleTypes.h:45
std::vector< EmergenceAction > actions
Definition RuleTypes.h:46
decision::Condition condition
Definition RuleTypes.h:44