jong/src/tui/render/hand.rs
2026-01-12 23:29:24 -08:00

32 lines
730 B
Rust

use bevy::prelude::*;
use ratatui::widgets::Paragraph;
use jong::game::hand::HandTiles;
use jong::tiles::Tile;
use crate::tui::render::tiles;
#[derive(Resource, Default)]
pub(crate) struct RenderedHand(pub(crate) Vec<Vec<Paragraph<'static>>>);
pub(crate) fn render_changed_hand(
hands: Populated<&Children, Changed<HandTiles>>,
tiles: Populated<&Tile>,
mut target: ResMut<RenderedHand>,
) -> Result {
let mut rendered = vec![];
for hand in hands {
let tiles = hand
.iter()
.map(|inhand| tiles.get(inhand).map(tiles::draw_tile).unwrap())
.collect();
rendered.push(tiles);
}
target.0 = rendered;
trace!("render_changed_hand");
Ok(())
}