2026-01-08 20:49:19 -08:00
|
|
|
use std::time::Duration;
|
|
|
|
|
|
|
|
|
|
use bevy::{app::ScheduleRunnerPlugin, prelude::*};
|
|
|
|
|
use bevy_ratatui::{RatatuiContext, RatatuiPlugins};
|
2026-01-07 00:51:57 -08:00
|
|
|
|
2026-01-08 21:35:16 -08:00
|
|
|
use jong::tiles::Tile;
|
2026-01-07 00:51:57 -08:00
|
|
|
|
2026-01-08 20:49:19 -08:00
|
|
|
mod input;
|
|
|
|
|
|
|
|
|
|
pub struct RiichiTui;
|
2026-01-07 00:51:57 -08:00
|
|
|
|
2026-01-08 20:49:19 -08:00
|
|
|
impl Plugin for RiichiTui {
|
|
|
|
|
fn build(&self, app: &mut App) {
|
|
|
|
|
app.add_plugins((
|
|
|
|
|
MinimalPlugins.set(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f32(
|
|
|
|
|
1. / 1.,
|
|
|
|
|
))),
|
|
|
|
|
RatatuiPlugins {
|
|
|
|
|
// enable_kitty_protocol: todo!(),
|
|
|
|
|
// enable_mouse_capture: todo!(),
|
|
|
|
|
enable_input_forwarding: true,
|
|
|
|
|
..Default::default()
|
|
|
|
|
},
|
|
|
|
|
))
|
2026-01-08 23:58:26 -08:00
|
|
|
.add_systems(Update, input::keyboard_input_system)
|
|
|
|
|
.add_systems(Update, draw_system);
|
2026-01-08 20:49:19 -08:00
|
|
|
}
|
|
|
|
|
}
|
2026-01-07 00:51:57 -08:00
|
|
|
|
|
|
|
|
pub(crate) fn draw_system(mut context: ResMut<RatatuiContext>, query: Query<&Tile>) -> Result {
|
|
|
|
|
context.draw(|frame| {
|
|
|
|
|
let text = ratatui::text::Text::raw("tiny riichi");
|
|
|
|
|
frame.render_widget(text, frame.area());
|
|
|
|
|
})?;
|
|
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|