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 36 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 84 of file DefaultEngineStateTransitionRules.ixx.
85 return std::span{rules_};
86 }
Referenced by helios::engine::bootstrap::bootstrapGameWorld.
Private Static Attributes
rules_
| constexpr static |
Definition at line 39 of file DefaultEngineStateTransitionRules.ixx.
39 static constexpr auto rules_ = [] {
40 std::array baseRules = std::to_array<StateTransitionRule<EngineState>>({
41
42 {EngineState::Undefined, EngineStateTransitionId::BootRequest, EngineState::Booting},
43 {EngineState::Booting, EngineStateTransitionId::BootRequest, EngineState::Booted,
45
46 {EngineState::Booted, EngineStateTransitionId::WarmupRequest, EngineState::Warmup,
48
49 {EngineState::Warmup, EngineStateTransitionId::WarmupDone, EngineState::Running},
50
51 });
52
53 constexpr EngineState shutdownable[] = {
54 EngineState::Running,
55 EngineState::Warmup
56 };
57
58 std::array<StateTransitionRule<EngineState>, baseRules.size() + std::size(shutdownable)> rules{};
59
62 }
63
64 for (size_t i = 0; i < std::size(shutdownable); i++) {
65 rules[baseRules.size() + i] = StateTransitionRule<EngineState>{
66 shutdownable[i],
67 EngineStateTransitionId::ShutdownRequest,
68 EngineState::Shutdown
69 };
70 }
71
72 return rules;
73 }();
The documentation for this class was generated from the following file:
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.