mirror of
https://github.com/bevyengine/bevy
synced 2024-12-23 19:43:07 +00:00
ffde86efa0
Objective During work on #3009 I've found that not all jobs use actions-rs, and therefore, an previous version of Rust is used for them. So while compilation and other stuff can pass, checking markup and Android build may fail with compilation errors. Solution This PR adds `action-rs` for any job running cargo, and updates the edition to 2021.
73 lines
2 KiB
Rust
73 lines
2 KiB
Rust
mod event;
|
|
mod system;
|
|
mod window;
|
|
mod windows;
|
|
|
|
pub use event::*;
|
|
pub use system::*;
|
|
pub use window::*;
|
|
pub use windows::*;
|
|
|
|
pub mod prelude {
|
|
#[doc(hidden)]
|
|
pub use crate::{
|
|
CursorEntered, CursorLeft, CursorMoved, FileDragAndDrop, ReceivedCharacter, Window,
|
|
WindowDescriptor, WindowMoved, Windows,
|
|
};
|
|
}
|
|
|
|
use bevy_app::{prelude::*, Events};
|
|
|
|
pub struct WindowPlugin {
|
|
pub add_primary_window: bool,
|
|
pub exit_on_close: bool,
|
|
}
|
|
|
|
impl Default for WindowPlugin {
|
|
fn default() -> Self {
|
|
WindowPlugin {
|
|
add_primary_window: true,
|
|
exit_on_close: true,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Plugin for WindowPlugin {
|
|
fn build(&self, app: &mut App) {
|
|
app.add_event::<WindowResized>()
|
|
.add_event::<CreateWindow>()
|
|
.add_event::<WindowCreated>()
|
|
.add_event::<WindowCloseRequested>()
|
|
.add_event::<CloseWindow>()
|
|
.add_event::<CursorMoved>()
|
|
.add_event::<CursorEntered>()
|
|
.add_event::<CursorLeft>()
|
|
.add_event::<ReceivedCharacter>()
|
|
.add_event::<WindowFocused>()
|
|
.add_event::<WindowScaleFactorChanged>()
|
|
.add_event::<WindowBackendScaleFactorChanged>()
|
|
.add_event::<FileDragAndDrop>()
|
|
.add_event::<WindowMoved>()
|
|
.init_resource::<Windows>();
|
|
|
|
if self.add_primary_window {
|
|
let window_descriptor = app
|
|
.world
|
|
.get_resource::<WindowDescriptor>()
|
|
.map(|descriptor| (*descriptor).clone())
|
|
.unwrap_or_default();
|
|
let mut create_window_event = app
|
|
.world
|
|
.get_resource_mut::<Events<CreateWindow>>()
|
|
.unwrap();
|
|
create_window_event.send(CreateWindow {
|
|
id: WindowId::primary(),
|
|
descriptor: window_descriptor,
|
|
});
|
|
}
|
|
|
|
if self.exit_on_close {
|
|
app.add_system(exit_on_window_close_system);
|
|
}
|
|
}
|
|
}
|