2026-01-09 06:54:17 -08:00
|
|
|
#![allow(unused)]
|
|
|
|
|
|
2026-01-09 23:14:29 -08:00
|
|
|
use bevy::{log::LogPlugin, prelude::*};
|
2026-01-07 00:51:57 -08:00
|
|
|
use clap::{Parser, Subcommand};
|
2026-01-09 23:14:29 -08:00
|
|
|
use tracing::Level;
|
2026-01-09 06:54:17 -08:00
|
|
|
use tracing_subscriber::{layer::SubscriberExt, 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-09 23:14:29 -08:00
|
|
|
const FILTERSTRING: &str = "warn,jong=trace";
|
|
|
|
|
|
2026-01-05 23:24:42 -08:00
|
|
|
fn main() {
|
2026-01-07 00:51:57 -08:00
|
|
|
let args = Args::parse();
|
|
|
|
|
|
|
|
|
|
let mut app = App::new();
|
|
|
|
|
let app = match args.mode {
|
2026-01-09 23:14:29 -08:00
|
|
|
Mode::RunGui => {
|
|
|
|
|
app.add_plugins(DefaultPlugins.set(LogPlugin {
|
|
|
|
|
filter: FILTERSTRING.into(),
|
|
|
|
|
level: Level::TRACE,
|
|
|
|
|
// custom_layer: todo!(),
|
|
|
|
|
// fmt_layer: todo!(),
|
|
|
|
|
..Default::default()
|
|
|
|
|
}))
|
|
|
|
|
}
|
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();
|
2026-01-09 23:14:29 -08:00
|
|
|
tui_logger::set_env_filter_from_string(FILTERSTRING);
|
2026-01-09 03:34:54 -08:00
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|