ProjectileSpawnSystem.ixx File
System for spawning projectiles based on ShootComponent state. More...
Included Headers
#include <cassert>
#include <helios.engine.common.tags.SystemRole>
#include <helios.engine.runtime.world.UpdateContext>
#include <helios.engine.mechanics.combat.components.Aim2DComponent>
#include <helios.engine.runtime.messaging.command.EngineCommandBuffer>
#include <helios.engine.modules.spatial.transform.components.TranslationStateComponent>
#include <helios.engine.state.Bindings>
#include <helios.engine.runtime.spawn.types.SpawnProfileId>
#include <helios.engine.runtime.world.GameWorld>
#include <helios.engine.runtime.spawn.types.SpawnContext>
#include <helios.engine.mechanics.combat.components.ShootComponent>
#include <helios.engine.runtime.spawn.commands.SpawnCommand>
#include <helios.engine.runtime.spawn.types.EmitterContext>
#include <helios.math>
#include <helios.engine.mechanics.lifecycle.components.Active>
Namespaces Index
| namespace | helios |
| namespace | engine |
|
Main engine module aggregating core infrastructure and game systems. More... | |
| namespace | mechanics |
|
High-level gameplay systems and components for game logic. More... | |
| namespace | combat |
|
Combat-related gameplay systems, components, and commands. More... | |
| namespace | systems |
|
Gameplay systems for combat mechanics processing. More... | |
Classes Index
| class | ProjectileSpawnSystem |
|
System that spawns projectiles for entities with active ShootComponents. More... | |
Description
System for spawning projectiles based on ShootComponent state.
File Listing
The file content with the documentation metadata removed is:
31using namespace helios::engine::runtime::spawn::types;
32export namespace helios::engine::mechanics::combat::systems {
73 class ProjectileSpawnSystem {
81 const helios::engine::runtime::spawn::types::SpawnProfileId spawnProfileId_;
93 explicit ProjectileSpawnSystem(
94 const helios::engine::runtime::spawn::types::SpawnProfileId& spawnProfileId
114 void update(helios::engine::runtime::world::UpdateContext& updateContext) noexcept {
130 assert(cooldown > helios::math::EPSILON_LENGTH && "Unexpected cooldownDelta");
131 if (ac->frequency() <= helios::math::EPSILON_LENGTH ||
132 intensity <= helios::math::EPSILON_LENGTH) {
162 SpawnContext{
163 EmitterContext{
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.