Files
PixelDefense/engine/breeze/world/tileset.h

53 lines
1.0 KiB
C

#ifndef BREEZE_TILESET_H
#define BREEZE_TILESET_H
#include "../defines.h"
#include <raylib.h>
typedef struct BzTilesetDesc {
const char *path;
const char *texturePath;
} BzTilesetDesc;
typedef enum BzTileColliderType {
BZ_TILE_COLLIDER_NONE,
BZ_TILE_COLLIDER_RECT,
BZ_TILE_COLLIDER_ELLIPSE
} BzTileColliderType;
typedef struct BzTileCollider {
BzTileColliderType type;
u8 x;
u8 y;
u8 sizeX;
u8 sizeY;
} BzTileCollider;
typedef struct BzTileset {
Texture2D tiles;
i32 tileCount;
BzTileCollider *tileColliders;
i32 startID;
i32 tileWidth;
i32 tileHeight;
i32 width;
i32 height;
i32 offsetX;
i32 offsetY;
bool isValid;
} BzTileset;
extern BzTileset BZ_TILESET_INVALID;
BzTileset bzTilesetCreate(const BzTilesetDesc *desc);
Rectangle bzTilesetGetTileRegion(BzTileset *tileset, int tileID);
BzTileCollider bzTilesetGetTileCollider(BzTileset *tileset, int tileID);
void bzTilesetDestroy(BzTileset *tileset);
#endif //BREEZE_TILESET_H