jong/src/tui/render/ingame.rs

33 lines
1 KiB
Rust
Raw Normal View History

2026-01-09 23:14:29 -08:00
use bevy::prelude::*;
use bevy_ratatui::RatatuiContext;
2026-01-13 01:08:14 -08:00
use jong::game::player::{MainPlayer, Player};
2026-01-09 23:14:29 -08:00
use crate::tui::render::{hand, tile::RenderedTile};
2026-01-11 20:10:30 -08:00
pub(crate) fn draw_ingame(
2026-01-12 01:54:59 -08:00
rendered_hand: Res<hand::RenderedHand>,
rendered_tiles: Populated<&RenderedTile>,
2026-01-13 01:08:14 -08:00
main_player: Single<Entity, (With<Player>, With<MainPlayer>)>,
2026-01-09 23:14:29 -08:00
mut tui_ctx: ResMut<RatatuiContext>,
) -> Result {
use ratatui::layout::Flex;
use ratatui::prelude::*;
tui_ctx.draw(|frame| {
2026-01-12 21:07:34 -08:00
// debug!("{}", frame.area());
2026-01-09 23:14:29 -08:00
2026-01-11 20:10:30 -08:00
let layout = Layout::horizontal(vec![Constraint::Max(5); 13]).flex(Flex::Start);
let mut area = frame.area();
area.height = 4;
let areas = layout.areas::<13>(area);
2026-01-13 01:08:14 -08:00
// if let Some(hand) = rendered_hand.0.get(&*main_player) {
if let Some(hand) = rendered_hand.0.get(&*main_player) {
for (tile, area) in hand.iter().zip(areas.iter()) {
frame.render_widget(&rendered_tiles.get(*tile).unwrap().0, *area);
2026-01-12 21:57:08 -08:00
}
2026-01-09 23:14:29 -08:00
}
})?;
Ok(())
}