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

@ -4,9 +4,8 @@
namespace gui {
using namespace components;
MainUI::MainUI(sf::RenderWindow& window, GameLevel level) :
MainUI::MainUI(sf::RenderWindow& window) :
$window(window),
$level(level),
$overlay_ui($level),
$rayview(RAY_VIEW_WIDTH, RAY_VIEW_HEIGHT)
{
@ -121,18 +120,20 @@ namespace gui {
$camera.abort_plan($rayview);
}
void MainUI::generate_map() {
auto& player = $level.world->get_the<Player>();
auto& player_position = $level.world->get<Position>(player.entity);
$player = player_position.location;
$rayview.set_level($level);
}
void MainUI::dead_entity(DinkyECS::Entity entity) {
auto &sprite = $level.world->get<Sprite>(entity);
$rayview.update_sprite(entity, sprite);
}
void MainUI::update_level(GameLevel level) {
$level = level;
auto& player_position = $level.world->get<Position>($level.player);
$player = player_position.location;
$rayview.update_level($level);
$rayview.position_camera($player.x + 0.5, $player.y + 0.5);
dirty();
}
void MainUI::mouse(int x, int y) {
$overlay_ui.$gui.mouse(x, y);
}