This commit is contained in:
asrael 2025-09-28 13:10:29 -05:00
parent 9f96626ea7
commit 6a02b24ae6
29 changed files with 653 additions and 583 deletions

View file

@ -31,33 +31,44 @@ typedef struct pxl8_tilesheet {
extern "C" {
#endif
pxl8_result pxl8_tilesheet_init(pxl8_tilesheet* tilesheet, u32 tile_size);
pxl8_result pxl8_tilesheet_load(pxl8_tilesheet* tilesheet, const char* filepath, pxl8_gfx_ctx* gfx);
void pxl8_tilesheet_free(pxl8_tilesheet* tilesheet);
void pxl8_tilesheet_render_tile(const pxl8_tilesheet* tilesheet, pxl8_gfx_ctx* gfx,
u16 tile_id, i32 x, i32 y, u8 flags);
bool pxl8_tilesheet_is_tile_valid(const pxl8_tilesheet* tilesheet, u16 tile_id);
pxl8_tilesheet* pxl8_tilesheet_new(u32 tile_size);
void pxl8_tilesheet_destroy(pxl8_tilesheet* tilesheet);
void pxl8_tilesheet_ref(pxl8_tilesheet* tilesheet);
void pxl8_tilesheet_unref(pxl8_tilesheet* tilesheet);
pxl8_result pxl8_tilesheet_add_animation(pxl8_tilesheet* tilesheet, u16 base_tile_id,
const u16* frames, u16 frame_count, f32 frame_duration);
void pxl8_tilesheet_update_animations(pxl8_tilesheet* tilesheet, f32 delta_time);
u16 pxl8_tilesheet_get_animated_frame(const pxl8_tilesheet* tilesheet, u16 tile_id);
void pxl8_tilesheet_set_tile_property(pxl8_tilesheet* tilesheet, u16 tile_id,
const pxl8_tile_properties* props);
const pxl8_tile_properties* pxl8_tilesheet_get_tile_property(const pxl8_tilesheet* tilesheet, u16 tile_id);
pxl8_result pxl8_tilesheet_add_autotile_rule(pxl8_tilesheet* tilesheet, u16 base_tile_id,
u8 neighbor_mask, u16 result_tile_id);
pxl8_result pxl8_tilesheet_add_animation(
pxl8_tilesheet* tilesheet,
u16 base_tile_id,
const u16* frames,
u16 frame_count,
f32 frame_duration
);
pxl8_result pxl8_tilesheet_add_autotile_rule(
pxl8_tilesheet* tilesheet,
u16 base_tile_id,
u8 neighbor_mask,
u16 result_tile_id
);
u16 pxl8_tilesheet_apply_autotile(const pxl8_tilesheet* tilesheet, u16 base_tile_id, u8 neighbors);
void pxl8_tilesheet_free(pxl8_tilesheet* tilesheet);
u16 pxl8_tilesheet_get_animated_frame(const pxl8_tilesheet* tilesheet, u16 tile_id);
const pxl8_tile_properties* pxl8_tilesheet_get_tile_property(
const pxl8_tilesheet* tilesheet,
u16 tile_id
);
bool pxl8_tilesheet_is_tile_valid(const pxl8_tilesheet* tilesheet, u16 tile_id);
pxl8_result pxl8_tilesheet_load(pxl8_tilesheet* tilesheet, const char* filepath, pxl8_gfx_ctx* gfx);
void pxl8_tilesheet_ref(pxl8_tilesheet* tilesheet);
void pxl8_tilesheet_render_tile(
const pxl8_tilesheet* tilesheet,
pxl8_gfx_ctx* gfx,
u16 tile_id,
i32 x,
i32 y,
u8 flags
);
void pxl8_tilesheet_set_tile_property(
pxl8_tilesheet* tilesheet,
u16 tile_id,
const pxl8_tile_properties* props
);
void pxl8_tilesheet_unref(pxl8_tilesheet* tilesheet);
void pxl8_tilesheet_update_animations(pxl8_tilesheet* tilesheet, f32 delta_time);
#ifdef __cplusplus
}