temporary workaround racing against render and spawning hand?
This commit is contained in:
parent
c274f6b807
commit
922413cc93
4 changed files with 22 additions and 15 deletions
|
|
@ -15,6 +15,7 @@
|
|||
# paths = [./jong];
|
||||
# };
|
||||
};
|
||||
processes.tail_log.exec = "tail -f jong.log";
|
||||
|
||||
# https://devenv.sh/packages/
|
||||
packages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue