new: initial implementation
This commit is contained in:
parent
5ea7f6de91
commit
69d911ccb8
3 changed files with 67 additions and 7 deletions
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -1669,6 +1669,7 @@ version = "0.1.0"
|
|||
dependencies = [
|
||||
"bevy",
|
||||
"bevy_egui",
|
||||
"vsort",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3867,6 +3868,12 @@ version = "0.9.5"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
||||
|
||||
[[package]]
|
||||
name = "vsort"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "11331a1b48f99ea6bb27faae41399d08783d055ddee131e1b1b70a854207ebf8"
|
||||
|
||||
[[package]]
|
||||
name = "walkdir"
|
||||
version = "2.5.0"
|
||||
|
|
|
@ -5,4 +5,6 @@ edition = "2021"
|
|||
|
||||
[dependencies]
|
||||
bevy = "0.14"
|
||||
bevy_egui = "0.28"
|
||||
bevy_egui = "0.28"
|
||||
# natord = "1.0"
|
||||
vsort = "0.2"
|
||||
|
|
63
src/main.rs
63
src/main.rs
|
@ -1,16 +1,67 @@
|
|||
use bevy::prelude::*;
|
||||
use bevy_egui::{egui, EguiContexts, EguiPlugin};
|
||||
use bevy::{prelude::*, winit::WinitSettings};
|
||||
use bevy_egui::{
|
||||
egui::{self},
|
||||
EguiContexts, EguiPlugin,
|
||||
};
|
||||
|
||||
#[cfg(windows)]
|
||||
const LINE_ENDING: &str = "\r\n";
|
||||
#[cfg(not(windows))]
|
||||
const LINE_ENDING: &str = "\n";
|
||||
|
||||
#[derive(Resource)]
|
||||
struct InputText {
|
||||
value: String,
|
||||
}
|
||||
|
||||
#[derive(Resource)]
|
||||
struct OutputText {
|
||||
value: String,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
App::new()
|
||||
.insert_resource(WinitSettings::desktop_app())
|
||||
.insert_resource(InputText {
|
||||
value: "".to_string(),
|
||||
})
|
||||
.insert_resource(OutputText {
|
||||
value: "".to_string(),
|
||||
})
|
||||
.add_plugins(DefaultPlugins)
|
||||
.add_plugins(EguiPlugin)
|
||||
.add_systems(Update, ui_example_system)
|
||||
.add_systems(Update, ui_system)
|
||||
.add_systems(Update, process_text)
|
||||
.run();
|
||||
}
|
||||
|
||||
fn ui_example_system(mut contexts: EguiContexts) {
|
||||
egui::Window::new("Hello").show(contexts.ctx_mut(), |ui| {
|
||||
ui.label("world");
|
||||
fn process_text(input_text: Res<InputText>, mut output_text: ResMut<OutputText>) {
|
||||
let mut arr = input_text.value.lines().collect::<Vec<_>>();
|
||||
arr.sort_by(|&a, &b| vsort::compare(a, b));
|
||||
output_text.value = arr.join(LINE_ENDING);
|
||||
}
|
||||
|
||||
fn ui_system(
|
||||
mut contexts: EguiContexts,
|
||||
mut input_text: ResMut<InputText>,
|
||||
mut output_text: ResMut<OutputText>,
|
||||
) {
|
||||
egui::CentralPanel::default().show(contexts.ctx_mut(), |ui| {
|
||||
ui.horizontal(|ui| {
|
||||
ui.vertical(|ui| {
|
||||
ui.label("input: ");
|
||||
ui.add_sized(
|
||||
[ui.available_width() / 2.0, ui.available_height()],
|
||||
egui::TextEdit::multiline(&mut input_text.value),
|
||||
);
|
||||
});
|
||||
ui.vertical(|ui| {
|
||||
ui.label("output: ");
|
||||
ui.add_sized(
|
||||
[ui.available_width() / 2.0, ui.available_height()],
|
||||
egui::TextEdit::multiline(&mut output_text.value),
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue