Skip to content

Commit

Permalink
added app.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
goldeneas committed Oct 4, 2024
1 parent aaeaad9 commit d94a18a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 11 deletions.
4 changes: 3 additions & 1 deletion src/app.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use crate::resources::screen_server::ScreenServer;

pub trait App {
fn start(&mut self);
fn start(&mut self, screen_server: &mut ScreenServer);
}
10 changes: 5 additions & 5 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ pub mod pass_ext;
pub mod device_ext;
pub mod app;

use app::App;
pub use bevy_ecs;
pub use egui;
pub use egui_wgpu;
Expand Down Expand Up @@ -149,11 +150,10 @@ pub struct Engine {
}

impl Engine {
fn new(screen: impl Screen ) -> Self{
fn new(app: &mut impl App) -> Self{
let engine_internal = Option::default();

let mut screen_server = ScreenServer::default();
screen_server.register_screen(GameState::default(), screen);
app.start(&mut screen_server);

let delta_time = Instant::now();
let time_accumulator = f32::default();
Expand Down Expand Up @@ -301,12 +301,12 @@ impl Engine {
}
}

pub fn run(screen: impl Screen + 'static) {
pub fn run(app: &mut impl App) {
env_logger::init();

let event_loop = EventLoop::new().unwrap();
event_loop.set_control_flow(ControlFlow::Poll);

let mut engine = Engine::new(screen);
let mut engine = Engine::new(app);
let _ = event_loop.run_app(&mut engine);
}
17 changes: 13 additions & 4 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
use winit::keyboard::KeyCode;
use wxpg::{resources::commands::Commands, run, screens::screen::Screen};
use wxpg::{app::App, resources::{commands::Commands, screen_server::{GameState, ScreenServer}}, run, screens::screen::Screen};

#[derive(Default)]
pub struct TestScreen {}
impl Screen for TestScreen {
fn start(&mut self, commands: &mut Commands) {
println!("HI");
println!("HI2");
}

fn update(&mut self, commands: &mut Commands) {

}
}

#[derive(Default)]
pub struct AppTest {}
impl App for AppTest {
fn start(&mut self, screen_server: &mut ScreenServer) {
let test = TestScreen::default();
screen_server.register_screen(test, GameState::Menu);
}
}

fn main() {
let screen = TestScreen::default();
wxpg::run(screen);
let mut app = AppTest::default();
wxpg::run(&mut app);
}
2 changes: 1 addition & 1 deletion src/resources/screen_server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ impl ScreenServer {
self.emit_event(Cycle::Update, engine_internal);
}

pub fn register_screen(&mut self, state: GameState, screen: impl Screen) {
pub fn register_screen(&mut self, screen: impl Screen, state: GameState) {
let screen = Box::new(screen);

match self.registered_screens.get_mut(&state) {
Expand Down

0 comments on commit d94a18a

Please sign in to comment.