From d7855a2b93be4aa1008643e54249cb739986869e Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Mon, 9 Mar 2026 01:04:36 +0100 Subject: feat(entity): add entity manager and pickup system --- include/entity.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 include/entity.h (limited to 'include/entity.h') diff --git a/include/entity.h b/include/entity.h new file mode 100644 index 0000000..60467ab --- /dev/null +++ b/include/entity.h @@ -0,0 +1,61 @@ +#ifndef ENTITY_H +#define ENTITY_H + +#include "raylib.h" +#include "raytmx.h" + +#include "player.h" +#include "map_manager.h" + +typedef struct Enemy { + Vector2 position; + Rectangle bounds; + uint32_t gid; + int health; + bool active; +} Enemy; + +typedef struct Static { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; +} Static; + +typedef struct Collectible { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; + int tileX; + int tileY; +} Collectible; + +typedef struct Movable { + Vector2 position; + Rectangle bounds; + uint32_t gid; + bool active; +} Movable; + +typedef struct EntityManager { + Enemy *enemies; + int enemiesCount; + + Collectible *collectibles; + int collectiblesCount; + + Static *statics; + int staticsCount; + + Movable *movables; + int movablesCount; +} EntityManager; + +EntityManager InitEntityManager(uint32_t capacity); +void SpawnEntitiesFromMap(EntityManager *mgr, TmxMap *map); +void UpdateEntities(EntityManager *mgr, Player *player, MapManager *mapMgr); +void DrawEntities(EntityManager *mgr, TmxMap *map); +void UnloadEntityManager(EntityManager *mgr); + +#endif // ENTITY_H -- cgit v1.3.1