/* * This file is part of laurelin_client * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use bevy::prelude::*; use crate::{api::game::Game, Global, AppState, game_status::GameStatus}; use super::GameDetailsCallEvent; mod ui; pub struct GamePlugin; impl Plugin for GamePlugin { fn build(&self, app: &mut App) { app.insert_resource(GameData::default()) .add_system(game_setup.in_schedule(OnEnter(AppState::InGame))) .add_system(ui::ui.run_if(in_state(AppState::InGame))); } } #[derive(Resource)] pub struct GameData { pub game: Option, pub game_status: Option, pub parsing_data: bool, } impl Default for GameData { fn default() -> Self { Self { game: None, game_status: None, parsing_data: false, } } } fn game_setup( mut details_ev_w: EventWriter, global: Res, ) { details_ev_w.send(GameDetailsCallEvent { game_id: global.cur_game_id.clone(), }); }