Removed sprite component set texture for more flexibility.

This commit is contained in:
Ulysse Cura 2026-08-14 16:50:37 +02:00
parent 9c728f6992
commit c6cb48d539
5 changed files with 34 additions and 27 deletions

@ -1 +1 @@
Subproject commit 1fa9d1cb8703da10bc7e6011df9f29d87e4eac95 Subproject commit 4a93ca2a9d77eeb65ac51bba13560258d83fe772

View File

@ -23,6 +23,4 @@ int sprite_component_draw(const component_t *component);
int sprite_component_destroy(component_t *component); int sprite_component_destroy(component_t *component);
int sprite_component_set_texture(sprite_component_data_t *component_data, const char *texture_name);
#endif // SPRITE_COMPONENT_H #endif // SPRITE_COMPONENT_H

View File

@ -123,7 +123,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy
{ {
physics_system_data->speed = PLAYER_DEFAULT_RUN_SPEED; physics_system_data->speed = PLAYER_DEFAULT_RUN_SPEED;
if(sprite_component_set_texture(sprite_component_data, "player_run_sheet")) return_failure_int; asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_run_sheet");
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
animation_system_data->nb_frames = 8; animation_system_data->nb_frames = 8;
animation_system_data->current_frame_nb = 0; animation_system_data->current_frame_nb = 0;
@ -134,7 +137,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy
{ {
physics_system_data->speed = PLAYER_DEFAULT_WALK_SPEED; physics_system_data->speed = PLAYER_DEFAULT_WALK_SPEED;
if(sprite_component_set_texture(sprite_component_data, "player_walk_sheet")) return_failure_int; asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_walk_sheet");
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
animation_system_data->nb_frames = 4; animation_system_data->nb_frames = 4;
animation_system_data->current_frame_nb = 0; animation_system_data->current_frame_nb = 0;
@ -144,7 +150,10 @@ static inline int player_system_set_animation_and_speed(player_system_data_t *sy
} }
else if(!(system_data->state & PLAYER_MOVING) && (system_data->last_state & PLAYER_MOVING)) else if(!(system_data->state & PLAYER_MOVING) && (system_data->last_state & PLAYER_MOVING))
{ {
if(sprite_component_set_texture(sprite_component_data, "player_idle_sheet")) return_failure_int; asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_idle_sheet");
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
animation_system_data->nb_frames = 4; animation_system_data->nb_frames = 4;
animation_system_data->current_frame_nb = 0; animation_system_data->current_frame_nb = 0;

View File

@ -55,13 +55,3 @@ inline int sprite_component_destroy(component_t *component)
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
inline int sprite_component_set_texture(sprite_component_data_t *component_data, const char *texture_name)
{
asset_t *texture_asset = asset_manager_get(&game.asset_manager, texture_name);
if(!texture_asset) return_failure_int;
component_data->texture = texture_asset->data;
return EXIT_SUCCESS;
}

View File

@ -18,13 +18,7 @@ int game_init(void)
event_bus_init(&game.event_bus); event_bus_init(&game.event_bus);
entity_manager_init(&game.entity_manager); entity_manager_init(&game.entity_manager);
if(!asset_manager_load_asset(&game.asset_manager, "player_idle_sheet", ASSET_TEXTURE)) return_failure_int; if(!asset_manager_load_asset(&game.asset_manager, "tileset", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "player_walk_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "player_run_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "lever_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "barred_door_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "wooden_door_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "tileset", ASSET_TEXTURE)) return_failure_int;
/* ======== Player ======== */ /* ======== Player ======== */
{ {
@ -51,7 +45,14 @@ int game_init(void)
sprite_component_data_t *sprite_component_data = sprite_component->data; sprite_component_data_t *sprite_component_data = sprite_component->data;
sprite_component_set_texture(sprite_component_data, "player_idle_sheet"); if(!asset_manager_load_asset(&game.asset_manager, "player_idle_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "player_walk_sheet", ASSET_TEXTURE)) return_failure_int;
if(!asset_manager_load_asset(&game.asset_manager, "player_run_sheet", ASSET_TEXTURE)) return_failure_int;
asset_t *asset = asset_manager_get_asset(&game.asset_manager, "player_idle_sheet");
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
} }
{ {
@ -117,7 +118,10 @@ int game_init(void)
sprite_component_data_t *sprite_component_data = sprite_component->data; sprite_component_data_t *sprite_component_data = sprite_component->data;
if(sprite_component_set_texture(sprite_component_data, "lever_sheet")) return_failure_int; asset_t *asset = asset_manager_load_asset(&game.asset_manager, "lever_sheet", ASSET_TEXTURE);
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
} }
{ {
@ -215,7 +219,10 @@ int game_init(void)
sprite_component_data_t * sprite_component_data = sprite_component->data; sprite_component_data_t * sprite_component_data = sprite_component->data;
if(sprite_component_set_texture(sprite_component_data, "barred_door_sheet")) return_failure_int; asset_t *asset = asset_manager_load_asset(&game.asset_manager, "barred_door_sheet", ASSET_TEXTURE);
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
} }
{ {
@ -290,7 +297,10 @@ int game_init(void)
sprite_component_data_t *sprite_component_data = sprite_component->data; sprite_component_data_t *sprite_component_data = sprite_component->data;
if(sprite_component_set_texture(sprite_component_data, "wooden_door_sheet")) return_failure_int; asset_t *asset = asset_manager_load_asset(&game.asset_manager, "wooden_door_sheet", ASSET_TEXTURE);
if(!asset) return_failure_int;
sprite_component_data->texture = asset->data;
} }
{ {