diff --git a/devenv.nix b/devenv.nix index 9899754..2848ba6 100644 --- a/devenv.nix +++ b/devenv.nix @@ -15,6 +15,7 @@ # paths = [./jong]; # }; }; + processes.tail_log.exec = "tail -f jong.log"; # https://devenv.sh/packages/ packages = with pkgs; [ diff --git a/jong/src/main.rs b/jong/src/main.rs index dcb9492..ae1c58b 100644 --- a/jong/src/main.rs +++ b/jong/src/main.rs @@ -4,7 +4,7 @@ use bevy::{log::LogPlugin, prelude::*}; use clap::{Parser, Subcommand}; use tracing::Level; use tracing_subscriber::{ - Layer, + EnvFilter, Layer, fmt::{self, layer}, layer::SubscriberExt, util::SubscriberInitExt, @@ -40,7 +40,11 @@ fn main() { Mode::RunTui => { tracing_subscriber::registry() .with(tui_logger::TuiTracingSubscriberLayer) - .with(fmt::layer().with_writer(File::create("jong.log").unwrap())) + .with( + fmt::layer() + .with_writer(File::create("jong.log").unwrap()) + .with_filter(EnvFilter::from_default_env()), + ) .init(); tui_logger::init_logger(tui_logger::LevelFilter::Trace).unwrap(); tui_logger::set_env_filter_from_string(FILTERSTRING); diff --git a/jong/src/riichi.rs b/jong/src/riichi.rs index 93de3f5..d5ae098 100644 --- a/jong/src/riichi.rs +++ b/jong/src/riichi.rs @@ -131,7 +131,7 @@ fn on_subscribed( } } - for bot in stdb.db().bot().iter() { + for bot in stdb.db().bot().iter() { let id = PlayerOrBot::Bot { id: bot.id }; let hand_view = stdb .db() @@ -187,17 +187,11 @@ fn spawn_main_hand( .iter() .map(|dbt| commands.spawn((Tile::from(&dbt.tile), TileId(dbt.id))).id()) .collect(); - let pond = commands.spawn(Hand).add_children(&pond_tiles).id(); - let hand = commands.spawn(Pond).add_children(&hand_tiles).id(); - let children = commands - .entity(main_player) - .add_children(&[pond, hand]) - .id(); + let hand = commands.spawn(Hand).add_children(&hand_tiles).id(); + let pond = commands.spawn(Pond).add_children(&pond_tiles).id(); + commands.entity(main_player).add_children(&[hand, pond]); - debug!( - "main_hand: {:?}\n main_pond: {:?}, children: {:?}", - hand_tiles, pond_tiles, children - ); + debug!("main_hand: {:?}\n main_pond: {:?}", hand_tiles, pond_tiles); if player_hand.turn_state == jong_db::TurnState::Tsumo && let Some(drawn_dbt) = &player_hand.working_tile @@ -319,10 +313,10 @@ fn on_view_hand_update( ) { // TODO can this and similar run at startup or on play/reconnect? for msg in messages.read() { - trace!("new hand: {:?}", msg.new); + // trace!("new hand: {:?}", msg.new); if main_player.1.is_none() { - trace!("spawn_main_hand, {:?}", *main_player); + // trace!("spawn_main_hand, {:?}", *main_player); spawn_main_hand(&mut commands, &mut next_turnstate, main_player.0, &msg.new); continue; } diff --git a/jong/src/tui/render.rs b/jong/src/tui/render.rs index 2135fa9..34f5495 100644 --- a/jong/src/tui/render.rs +++ b/jong/src/tui/render.rs @@ -112,6 +112,10 @@ pub(crate) fn render_main_hand( let mut frame = tui.get_frame(); debug_blocks(layouts.clone(), &mut frame); + if hand.is_empty() { + return Ok(()); + } + let hand: Vec<_> = hand .iter() .find_map(|(c, e)| { @@ -222,6 +226,10 @@ pub(crate) fn render_main_pond( ) -> Result { let mut frame = tui.get_frame(); + if pond.is_empty() { + return Ok(()); + } + let pond: Vec<_> = pond .iter() .find_map(|(c, e)| {