Level traversal works, but it's very immediate. Next is a little 'confirm level' modal and a transition screen.

This commit is contained in:
Zed A. Shaw 2025-02-24 23:26:50 -05:00
parent 1886c99920
commit 29e6d45dc6
14 changed files with 98 additions and 43 deletions

View file

@ -368,19 +368,18 @@ void Raycaster::update_sprite(DinkyECS::Entity ent, components::Sprite& sprite)
$sprites.insert_or_assign(ent, sprite_txt);
}
void Raycaster::set_level(GameLevel level) {
void Raycaster::update_level(GameLevel level) {
$level = level;
auto& tiles = $level.map->tiles();
auto world = $level.world;
auto& player = world->get_the<components::Player>();
$map = textures::convert_char_to_texture(tiles.$tile_ids);
world->query<components::Sprite>([&](const auto ent, auto& sprite) {
$level.world->query<components::Sprite>([&](const auto ent, auto& sprite) {
// player doesn't need a sprite
if(player.entity == ent) return;
if($level.player == ent) return;
fmt::println("entity {} will have sprite named {}", ent, sprite.name);
auto sprite_txt = textures::get(sprite.name);
$sprites.try_emplace(ent, sprite_txt);
$sprites.insert_or_assign(ent, sprite_txt);
});
}