jong/src/tui/render/hand.rs

33 lines
730 B
Rust
Raw Normal View History

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