32 lines
730 B
Rust
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(())
|
|
}
|