LambdaStateListener.ixx File
Lambda-based listener for state transitions. More...
Included Headers
#include <functional>
#include <cstdint>
#include <utility>
#include <helios.engine.runtime.world.GameObject>
#include <helios.engine.state.types>
#include <helios.engine.runtime.world.UpdateContext>
#include <helios.engine.state.StateTransitionListener>
Namespaces Index
| namespace | helios |
| namespace | engine |
| namespace | state |
| namespace | listeners |
Classes Index
| class | LambdaStateListener<StateType> |
|
Lambda-based implementation of StateTransitionListener. More... | |
Description
Lambda-based listener for state transitions.
File Listing
The file content with the documentation metadata removed is:
20using namespace helios::engine::state::types;
21export namespace helios::engine::state::listeners {
36 class LambdaStateListener : public StateTransitionListener<StateType> {
41 using OnEnterCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>;
46 using OnExitCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateType)>;
51 using OnTransitionCallback = std::function<void(helios::engine::runtime::world::UpdateContext&, const StateTransitionContext<StateType>)>;
78 explicit LambdaStateListener(
79 OnExitCallback onExitCallback,
80 OnTransitionCallback onTransitionCallback,
81 OnEnterCallback onEnterCallback
82 ) : onExitCallback_(std::move(onExitCallback)),
83 onTransitionCallback_(std::move(onTransitionCallback)),
84 onEnterCallback_(std::move(onEnterCallback)) {}
91 explicit LambdaStateListener(
92 OnExitCallback onEnterCallback
93 ) : onEnterCallback_(std::move(onEnterCallback)) {}
100 explicit LambdaStateListener(
101 OnTransitionCallback onTransitionCallback
102 ) : onTransitionCallback_(std::move(onTransitionCallback)) {}
109 void onStateExit(
114 onExitCallback_(updateContext, from);
121 void onStateEnter(
126 onEnterCallback_(updateContext, to);
133 void onStateTransition(
138 onTransitionCallback_(updateContext, transitionCtx);
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.