void ai_system(Registry &r, ComponentContainer< Behaviour > &behaviours, ComponentContainer< Velocity > &velocities)
AI system that updates the behaviour and velocity of entities.
void collision_system(Registry &r, ComponentContainer< Position > &positions, ComponentContainer< Collider > &colliders, ComponentContainer< Type > &types)
Collision detection and resolution system.
void event_system(Registry &r)
Processes events from the queue and performs actions.
void lifetime_system(Registry &r, ComponentContainer< Lifetime > &lifetimes)
Manages the lifetime of entities by decreasing their time left.
void movement_system(Registry &r, ComponentContainer< Position > &positions, ComponentContainer< Velocity > &velocities)
Handles the movement of entities based on their velocity.
void spawn_monster_system(Registry &r)
Spawns a monster periodically based on the spawn timer.
void setup_systems(Registry &r)
Sets up all the necessary systems for the game.
void setup_components(Registry &r)
Registers components in the given registry.
void weapon_system(Registry &r, ComponentContainer< Weapon > &weapons, ComponentContainer< Position > &positions, ComponentContainer< Type > &types)
Handles the firing of weapons and updates their states.
void win_system(Registry &r)
Manages entities and their associated components, enabling the creation, deletion,...
void add_system(Function &&f)
Adds a system to the registry.
ComponentContainer< Component > & register_component()
Registers a new component type.
Represents the behaviour of an entity, including the type and a timer for timed behaviours.
Represents a circular collider for an entity, defined by its radius.
Represents the health of an entity, including current and maximum health values.
Represents an image asset with a specified width and height.
Represents the remaining lifetime of an entity or object.
Represents a loot drop with a specific loot type.
Represents information about a player, specifically their username.
Represents the position of an entity in a 2D space.
Represents a power-up item and its enabled state.
Represents the team affiliation of an entity.
Represents the type of an entity in the game.
Represents the velocity of an entity in a 2D space.
Represents a weapon and its attributes in the game.