10#include "../../Components/IComponent.hpp"
11#include "../../Components/Weapon.hpp"
20 for (
auto entityId : entities) {
41 [[maybe_unused]]
float deltaTime) {
46 return (1ULL << getComponentType<Enemy>()) | (1ULL << getComponentType<Transform>()) |
47 (1ULL << getComponentType<Velocity>());
ComponentMask getComponentMask() const override
Gets the component mask for this system.
void update(Registry ®istry, float deltaTime) override
Updates all enemy AI behaviors.
void applyMovementPattern(const Enemy &enemy, Transform &transform, Velocity &velocity, float deltaTime)
Applies movement pattern to an enemy entity.
Component identifying an entity as an enemy with AI behavior.
Manages entities, their signatures and component type registrations.
std::vector< Address > getEntitiesWithMask(Signature requiredMask)
Get all entities matching a specific component mask.
T & getComponent(Address address)
Get a component from an entity.
bool hasComponent(Address address)
Check if an entity has a specific component.
Component representing movement direction and speed.
Component for entities capable of shooting projectiles.
void setShouldShoot(bool shouldShoot)
Set whether the weapon should shoot.
Maximum number of distinct component types supported by the Registry.
std::uint64_t ComponentMask
Type alias for component bitmask.