Files

17 lines
724 B
C#

namespace GameCore.ECS.Interfaces;
/// <summary>
/// The contract for all game logic systems.
/// Systems are stateless classes that contain all the logic.
/// They operate on entities that possess a specific set of components.
/// For example, a MovementSystem would operate on entities with PositionComponent and VelocityComponent.
/// </summary>
public interface ISystem
{
/// <summary>
/// The main update method for a system, called once per game loop.
/// </summary>
/// <param name="world">A reference to the main World object to query for entities and components.</param>
/// <param name="deltaTime">The time elapsed since the last frame.</param>
void Update(World world, float deltaTime);
}