simplify game setup

This commit is contained in:
Tao Tien 2026-01-13 00:01:38 -08:00
parent f4c4339204
commit 30d19ed9d9
8 changed files with 145 additions and 171 deletions

View file

@ -6,9 +6,9 @@ use bevy_ratatui::event::KeyMessage;
use ratatui::{text::ToSpan, widgets::Paragraph};
use jong::game::GameState;
use jong::game::wall::InWall;
// use jong::game::wall::InWall;
use crate::tui::console::ConsoleState;
use crate::tui::{console::ConsoleState, menu::draw_mainmenu, render::ingame::draw_ingame};
mod console;
mod menu;
@ -54,7 +54,7 @@ impl Plugin for RiichiTui {
// console
.init_state::<console::ConsoleState>()
.add_systems(Update, console::draw_console.run_if(in_state(console::ConsoleState::Open)))
.add_systems(Update, console::draw_console.after_ignore_deferred(draw_mainmenu).after_ignore_deferred(draw_ingame).run_if(in_state(console::ConsoleState::Open)))
// general setup
.init_state::<TuiState>()
@ -67,7 +67,7 @@ impl Plugin for RiichiTui {
// gaming
.init_resource::<render::hand::RenderedHand>()
.add_systems(Update, render::ingame::draw_ingame.run_if(in_state(InGame)))
.add_systems(Update, render::hand::render_changed_hand.run_if(in_state(InGame).and(in_state(GameState::Play))))
// .add_systems(Update, render::hand::render_changed_hand.run_if(in_state(InGame).and(in_state(GameState::Play))))
// semicolon stopper
;
@ -119,7 +119,7 @@ pub(crate) fn input_system(
}
_ => {}
},
GameState::Score => todo!(),
_ => todo!(),
_ => unreachable!("TuiState::InGame but GameState invalid")
},
}

View file

@ -1,7 +1,7 @@
use bevy::prelude::*;
use ratatui::widgets::Paragraph;
use jong::game::hand::HandTiles;
// use jong::game::hand::HandTiles;
use jong::tiles::Tile;
use crate::tui::render::tiles;
@ -9,24 +9,24 @@ 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![];
// 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();
// for hand in hands {
// let tiles = hand
// .iter()
// .map(|inhand| tiles.get(inhand).map(tiles::draw_tile).unwrap())
// .collect();
rendered.push(tiles);
}
// rendered.push(tiles);
// }
target.0 = rendered;
// target.0 = rendered;
trace!("render_changed_hand");
Ok(())
}
// trace!("render_changed_hand");
// Ok(())
// }