DefaultEngineStateTransitionRules Class
Provides the default set of game state transition rules. More...
Declaration
class helios::engine::runtime::enginestate::rules::DefaultEngineStateTransitionRules { ... }
Public Static Functions Index
| static std::span< const StateTransitionRule< EngineState > > | rules () |
|
Returns the default transition rules. More... | |
Private Static Attributes Index
| static constexpr auto | rules_ |
Description
Provides the default set of game state transition rules.
Definition at line 37 of file DefaultEngineStateTransitionRules.ixx.
Public Static Functions
rules()
| inline static |
Returns the default transition rules.
- Returns
A span of the predefined transition rules.
Definition at line 85 of file DefaultEngineStateTransitionRules.ixx.
86 return std::span{rules_};
87 }
Referenced by helios::engine::bootstrap::bootstrapGameWorld.
Private Static Attributes
rules_
| constexpr static |
Definition at line 40 of file DefaultEngineStateTransitionRules.ixx.
40 static constexpr auto rules_ = [] {
41 std::array baseRules = std::to_array<StateTransitionRule<EngineState>>({
42
43 {EngineState::Undefined, EngineStateTransitionId::BootRequest, EngineState::Booting},
44 {EngineState::Booting, EngineStateTransitionId::BootRequest, EngineState::Booted,
46
47 {EngineState::Booted, EngineStateTransitionId::WarmupRequest, EngineState::Warmup,
49
50 {EngineState::Warmup, EngineStateTransitionId::WarmupDone, EngineState::Running},
51
52 });
53
54 constexpr EngineState shutdownable[] = {
55 EngineState::Running,
56 EngineState::Warmup
57 };
58
59 std::array<StateTransitionRule<EngineState>, baseRules.size() + std::size(shutdownable)> rules{};
60
63 }
64
65 for (size_t i = 0; i < std::size(shutdownable); i++) {
66 rules[baseRules.size() + i] = StateTransitionRule<EngineState>{
67 shutdownable[i],
68 EngineStateTransitionId::ShutdownRequest,
69 EngineState::Shutdown
70 };
71 }
72
73 return rules;
74 }();
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.