DelayedComponentEnabler.ixx File
Component for scheduling delayed activation of other components. More...
Included Headers
#include <cassert>
#include <span>
#include <typeindex>
#include <memory>
#include <vector>
#include <ranges>
#include <helios.engine.core.types>
#include <helios.ecs.types.ComponentTypeId>
Namespaces Index
| namespace | helios |
| namespace | engine |
| namespace | runtime |
| namespace | lifecycle |
| namespace | components |
Classes Index
| class | DelayedComponentEnabler<THandle> |
|
Component that manages delayed activation of other components. More... | |
| struct | DeferredComponent |
|
Internal structure tracking a deferred component. More... | |
Description
Component for scheduling delayed activation of other components.
File Listing
The file content with the documentation metadata removed is:
19export namespace helios::engine::runtime::lifecycle::components {
42 class DelayedComponentEnabler {
69 DelayedComponentEnabler() = default;
77 : deferredComponents_(other.deferredComponents_) {}
79 DelayedComponentEnabler& operator=(const DelayedComponentEnabler&) = default;
88 std::span<DeferredComponent> deferredComponents() noexcept {
100 void sync(std::span<helios::ecs::types::ComponentTypeId<THandle>> removeList) {
101 std::erase_if(deferredComponents_, [&](const DeferredComponent& dc) {
102 return std::ranges::find(removeList, dc.componentTypeId) != removeList.end();
122 assert(delta > 0 && "delta must be greater than 0");
127 const auto it = std::ranges::find_if(deferredComponents_,
132 entity.disableComponent(componentTypeId);
134 if (it == deferredComponents_.end()) {
137 it->delta = delta;
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.