Files
PixelDefense/engine/breeze/map/tileset.h
2023-11-11 07:01:49 +01:00

58 lines
1.1 KiB
C

#ifndef BREEZE_TILESET_H
#define BREEZE_TILESET_H
#include "../defines.h"
#include <raylib.h>
typedef i32 BzTile;
typedef struct BzTilesetDesc {
const char *path;
const char *texturePath;
} BzTilesetDesc;
typedef enum BzTileShapeType {
BZ_TILE_SHAPE_NONE,
BZ_TILE_SHAPE_POINT,
BZ_TILE_SHAPE_RECT,
BZ_TILE_SHAPE_ELLIPSE,
//BZ_TILE_SHAPE_POLYGON
} BzTileShapeType;
typedef struct BzTileShape {
BzTileShapeType type;
f32 x;
f32 y;
f32 sizeX;
f32 sizeY;
} BzTileShape;
typedef struct BzTileset {
Texture2D tiles;
i32 tileCount;
BzTileShape *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);
BzTile bzTilesetGetTile(BzTileset *tileset, BzTile tile);
Rectangle bzTilesetGetTileRegion(BzTileset *tileset, BzTile tileID);
BzTileShape bzTilesetGetTileCollider(BzTileset *tileset, BzTile tileID);
void bzTilesetDestroy(BzTileset *tileset);
#endif //BREEZE_TILESET_H