#include "components.h"

ECS_TAG_DECLARE(TextureTerrain);
ECS_TAG_DECLARE(TextureBuildings);
ECS_TAG_DECLARE(TextureEntities);

ECS_COMPONENT_DECLARE(Resource);

ECS_COMPONENT_DECLARE(TilePosition);
ECS_COMPONENT_DECLARE(TileSize);
ECS_COMPONENT_DECLARE(Owner);

ECS_COMPONENT_DECLARE(SpatialGridID);

ECS_COMPONENT_DECLARE(Position);
ECS_COMPONENT_DECLARE(Size);
ECS_COMPONENT_DECLARE(Velocity);
ECS_COMPONENT_DECLARE(Rotation);
ECS_COMPONENT_DECLARE(AngularVelocity);
ECS_COMPONENT_DECLARE(SteeringOutput);

ECS_COMPONENT_DECLARE(TextureRegion);
ECS_COMPONENT_DECLARE(AnimationType);
ECS_COMPONENT_DECLARE(Animation);
ECS_COMPONENT_DECLARE(Path);

void initComponentIDs(ecs_world_t *ecs) {
    ECS_TAG_DEFINE(ecs, TextureTerrain);
    ECS_TAG_DEFINE(ecs, TextureBuildings);
    ECS_TAG_DEFINE(ecs, TextureEntities);

    ECS_COMPONENT_DEFINE(ecs, Resource);

    ECS_COMPONENT_DEFINE(ecs, TilePosition);
    ECS_COMPONENT_DEFINE(ecs, TileSize);
    ECS_COMPONENT_DEFINE(ecs, Owner);

    ECS_COMPONENT_DEFINE(ecs, SpatialGridID);

    ECS_COMPONENT_DEFINE(ecs, Position);
    ECS_COMPONENT_DEFINE(ecs, Size);
    ECS_COMPONENT_DEFINE(ecs, Velocity);
    ECS_COMPONENT_DEFINE(ecs, Rotation);
    ECS_COMPONENT_DEFINE(ecs, AngularVelocity);
    ECS_COMPONENT_DEFINE(ecs, SteeringOutput);

    ECS_COMPONENT_DEFINE(ecs, TextureRegion);
    ECS_COMPONENT_DEFINE(ecs, AnimationType);
    ECS_COMPONENT_DEFINE(ecs, Animation);
    ECS_COMPONENT_DEFINE(ecs, Path);
}
