2026-01-08 20:49:19 -08:00
|
|
|
use bevy::prelude::*;
|
2026-01-07 00:51:57 -08:00
|
|
|
use clap::{Parser, Subcommand};
|
2026-01-09 03:34:54 -08:00
|
|
|
use tracing_subscriber::{layer::SubscriberExt, registry::LookupSpan, util::SubscriberInitExt};
|
2026-01-07 00:51:57 -08:00
|
|
|
|
2026-01-05 23:49:37 -08:00
|
|
|
mod gui;
|
|
|
|
|
mod tui;
|
|
|
|
|
|
2026-01-07 00:51:57 -08:00
|
|
|
#[derive(Parser)]
|
|
|
|
|
struct Args {
|
|
|
|
|
#[command(subcommand)]
|
|
|
|
|
mode: Mode,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Subcommand)]
|
|
|
|
|
enum Mode {
|
|
|
|
|
RunGui,
|
|
|
|
|
RunTui,
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-05 23:24:42 -08:00
|
|
|
fn main() {
|
2026-01-09 03:34:54 -08:00
|
|
|
// tracing_subscriber::fmt()
|
|
|
|
|
// .with_writer(std::io::stderr)
|
|
|
|
|
// .with_env_filter("warn,jong=trace")
|
|
|
|
|
// .init();
|
2026-01-08 23:58:26 -08:00
|
|
|
|
2026-01-07 00:51:57 -08:00
|
|
|
let args = Args::parse();
|
|
|
|
|
|
|
|
|
|
let mut app = App::new();
|
|
|
|
|
let app = match args.mode {
|
|
|
|
|
Mode::RunGui => app.add_plugins(DefaultPlugins),
|
2026-01-09 03:34:54 -08:00
|
|
|
Mode::RunTui => {
|
|
|
|
|
tracing_subscriber::registry()
|
|
|
|
|
.with(tui_logger::TuiTracingSubscriberLayer)
|
|
|
|
|
.init();
|
|
|
|
|
tui_logger::init_logger(tui_logger::LevelFilter::Trace).unwrap();
|
|
|
|
|
tui_logger::set_env_filter_from_string("warn,jong=trace");
|
|
|
|
|
|
|
|
|
|
app.add_plugins(tui::RiichiTui)
|
|
|
|
|
}
|
2026-01-07 00:51:57 -08:00
|
|
|
};
|
|
|
|
|
|
2026-01-08 21:35:16 -08:00
|
|
|
app.add_plugins(jong::game::Riichi);
|
2026-01-07 00:51:57 -08:00
|
|
|
|
|
|
|
|
app.run();
|
|
|
|
|
}
|