53 lines
1.0 KiB
C
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
|