1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
use bevy::prelude::*; use crate::grpc::GrpcPlugin; mod grpc; struct Counter { count: usize, requests: usize, } pub fn run_app() { App::build() .add_default_plugins() .add_plugin(GrpcPlugin) .add_resource(Counter { count: 0, requests: 0, }) .add_startup_system(setup.system()) .add_system(increase_counter_system.system()) .add_system(print_counter_system.system()) .run(); } fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { let font_handle = asset_server .load("src/lunaria/assets/JetBrainsMono-Regular.ttf") .unwrap(); commands .spawn(UiCameraComponents::default()) .spawn(TextComponents { style: Style { align_self: AlignSelf::FlexEnd, ..Default::default() }, text: Text { value: "Counter: 0 | Requests: 0".to_string(), font: font_handle, style: TextStyle { font_size: 60.0, color: Color::WHITE, }, }, ..Default::default() }); } fn increase_counter_system(mut counter: ResMut<Counter>) { counter.count += 1; } fn print_counter_system(counter: Res<Counter>, mut query: Query<&mut Text>) { for mut text in &mut query.iter() { text.value = format!( "Counter: {} | Requests: {}", counter.count, counter.requests ); } }