small changes

This commit is contained in:
Tao Tien 2026-02-10 01:38:13 -08:00
parent d183f5d993
commit 50fd406dbf
6 changed files with 46 additions and 45 deletions

View file

@ -190,7 +190,7 @@ fn on_lobby_insert_update(
trace!("game entered none"); trace!("game entered none");
} }
stdb::GameState::Lobby => { stdb::GameState::Lobby => {
trace!("game in lobby"); trace!("game entered lobby");
if !player.ready { if !player.ready {
for _ in 0..3 { for _ in 0..3 {
stdb.reducers().add_bot(player.lobby_id).unwrap(); stdb.reducers().add_bot(player.lobby_id).unwrap();

View file

@ -86,7 +86,7 @@ impl Plugin for TuiPlugin {
.add_systems( .add_systems(
Update, Update,
( (
(render::render_hands, render::render_arg_check).run_if(in_state(GameState::Play)), render::render_hands.run_if(in_state(GameState::Play)),
render::render, render::render,
) )
.chain() .chain()

View file

@ -95,22 +95,22 @@ pub(crate) fn render(
Ok(()) Ok(())
} }
pub(crate) fn render_arg_check( // pub(crate) fn render_arg_check(
mut commands: Commands, // mut commands: Commands,
mut tui: ResMut<RatatuiContext>, // mut tui: ResMut<RatatuiContext>,
hovered: Query<Entity, With<Hovered>>, // hovered: Query<Entity, With<Hovered>>,
layouts: Res<HandLayouts>, // layouts: Res<HandLayouts>,
tiles: Query<&jong_types::Tile>, // tiles: Query<&jong_types::Tile>,
// main_player: Single<(&Player, Entity, &Wind), With<MainPlayer>>, // // main_player: Single<(&Player, Entity, &Wind), With<MainPlayer>>,
curr_player: Single<Entity, With<CurrentPlayer>>, // curr_player: Single<Entity, With<CurrentPlayer>>,
players: Query<(&Player, Entity, &Children)>, // players: Query<(&Player, Entity, &Children)>,
hands: Query<(&Children, Entity), (With<Hand>, Without<Player>)>, // hands: Query<(&Children, Entity), (With<Hand>, Without<Player>)>,
// drawn_tile: Single<Entity, With<Drawn>>, // // drawn_tile: Single<Entity, With<Drawn>>,
) { // ) {
// trace!("arg!"); // // trace!("arg!");
} // }
#[allow(clippy::too_many_arguments, clippy::type_complexity)] #[allow(clippy::too_many_arguments, clippy::type_complexity)]
pub(crate) fn render_hands( pub(crate) fn render_hands(
@ -121,14 +121,12 @@ pub(crate) fn render_hands(
layouts: Res<HandLayouts>, layouts: Res<HandLayouts>,
tiles: Query<&jong_types::Tile>, tiles: Query<&jong_types::Tile>,
main_player: Single<(&Player, Entity, &Wind), With<MainPlayer>>, main_player: Single<(&Player, Entity /* , &Wind */), With<MainPlayer>>,
curr_player: Single<Entity, With<CurrentPlayer>>, curr_player: Single<Entity, With<CurrentPlayer>>,
players: Query<(&Player, Entity, &Children)>, players: Query<(&Player, Entity, &Children)>,
hands: Query<(&Children, Entity), (With<Hand>, Without<Player>)>, hands: Query<(&Children, Entity), (With<Hand>, Without<Player>)>,
drawn_tile: Single<Entity, With<Drawn>>, // drawn_tile: Single<Entity, With<Drawn>>,
) -> Result { ) -> Result {
trace!("render_hands");
let mut frame = tui.get_frame(); let mut frame = tui.get_frame();
debug_blocks(*layouts, &mut frame); debug_blocks(*layouts, &mut frame);
@ -194,27 +192,27 @@ pub(crate) fn render_hands(
} }
// tsumo tile // tsumo tile
if this_drawer { // if this_drawer {
// trace!("this_drawer"); // // trace!("this_drawer");
let mut area = drawn_area.resize(Size { // let mut area = drawn_area.resize(Size {
width: 5, // width: 5,
height: 4, // height: 4,
}); // });
area = area.offset(Offset { x: 2, y: 0 }); // area = area.offset(Offset { x: 2, y: 0 });
let hovered = hovered.contains(*drawn_tile); // let hovered = hovered.contains(*drawn_tile);
let widget = render_tile(tiles.get(*drawn_tile)?, hovered); // let widget = render_tile(tiles.get(*drawn_tile)?, hovered);
if hovered { // if hovered {
area = area.offset(Offset { x: 0, y: -1 }); // area = area.offset(Offset { x: 0, y: -1 });
let mut hitbox = area.as_size(); // let mut hitbox = area.as_size();
hitbox.height += 1; // hitbox.height += 1;
commands.entity(*drawn_tile).insert(PickRegion { // commands.entity(*drawn_tile).insert(PickRegion {
area: area.resize(hitbox), // area: area.resize(hitbox),
}); // });
} else { // } else {
commands.entity(*drawn_tile).insert(PickRegion { area }); // commands.entity(*drawn_tile).insert(PickRegion { area });
} // }
frame.render_widget(widget, area); // frame.render_widget(widget, area);
} // }
// TODO draw melds // TODO draw melds
} else { } else {
// match mainplayer.1.relate(wind) { // match mainplayer.1.relate(wind) {

View file

@ -8,8 +8,8 @@ default:
just --list just --list
run-tui: run-tui:
# mprocs -s localhost:4050 --ctl $"({c: restart-proc, name: spacetimedb_generate_bindings} | to yaml)" mprocs -s localhost:4050 --ctl $"({c: restart-proc, name: spacetimedb_generate_bindings} | to yaml)"
# sleep 3sec sleep 3sec
cargo run -- run-tui cargo run -- run-tui
update: update:

View file

@ -80,7 +80,7 @@ pub fn start_game(ctx: &ReducerContext) {
PlayerOrBot::Bot { id } => ctx.db.bot().id().find(id).is_some(), PlayerOrBot::Bot { id } => ctx.db.bot().id().find(id).is_some(),
}) })
{ {
lobby.game_state = GameState::Deal; lobby.game_state = GameState::Setup;
ctx.db.lobby().id().update(lobby); ctx.db.lobby().id().update(lobby);
} }
} }

View file

@ -10,7 +10,10 @@ pub fn shuffle_deal(ctx: &ReducerContext, lobby_id: u32) {
debug!("lobby_id: {lobby_id}"); debug!("lobby_id: {lobby_id}");
let mut lobby = ctx.db.lobby().id().find(lobby_id).unwrap(); let mut lobby = ctx.db.lobby().id().find(lobby_id).unwrap();
if lobby.game_state == GameState::Deal { if lobby.game_state == GameState::Setup {
lobby.game_state = GameState::Deal;
lobby = ctx.db.lobby().id().update(lobby);
let tiles = new_shuffled_wall(ctx); let tiles = new_shuffled_wall(ctx);
ctx.db.wall().insert(Wall { ctx.db.wall().insert(Wall {
// id: 0, // id: 0,