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 36 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 84 of file DefaultEngineStateTransitionRules.ixx.

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

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

Private Static Attributes

rules_

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