namespace MoonTools.ECS; public abstract class EntityComponentReader { internal EntityStorage EntityStorage; internal ComponentDepot ComponentDepot; internal void RegisterEntityStorage(EntityStorage entityStorage) { EntityStorage = entityStorage; } internal void RegisterComponentDepot(ComponentDepot componentDepot) { ComponentDepot = componentDepot; } protected ReadOnlySpan ReadEntities() where TComponent : struct { return ComponentDepot.ReadEntities(); } protected ReadOnlySpan ReadComponents() where TComponent : struct { return ComponentDepot.ReadComponents(); } protected bool Has(in Entity entity) where TComponent : struct { return ComponentDepot.Has(entity.ID); } protected bool Some() where TComponent : struct { return ComponentDepot.Some(); } protected TComponent Get(in Entity entity) where TComponent : struct { return ComponentDepot.Get(entity.ID); } }