Skip to main content

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 autorules_

Description

Provides the default set of game state transition rules.

Definition at line 37 of file DefaultEngineStateTransitionRules.ixx.

Public Static Functions

rules()

std::span< const StateTransitionRule< EngineState > > helios::engine::runtime::enginestate::rules::DefaultEngineStateTransitionRules::rules ()
inline static

Returns the default transition rules.

Returns

A span of the predefined transition rules.

Definition at line 85 of file DefaultEngineStateTransitionRules.ixx.

85 [[nodiscard]] static std::span<const StateTransitionRule<EngineState>> rules() {
86 return std::span{rules_};
87 }

Referenced by helios::engine::bootstrap::bootstrapGameWorld.

Private Static Attributes

rules_

constexpr auto helios::engine::runtime::enginestate::rules::DefaultEngineStateTransitionRules::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
61 for (size_t i = 0; i < baseRules.size(); i++) {
62 rules[i] = baseRules[i];
63 }
64
65 for (size_t i = 0; i < std::size(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.