From aa3ede096f19363dd6e05040976ffc32120e2ea5 Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 19 Feb 2023 15:19:02 -0500 Subject: [PATCH] start moving slimed project to app+core+support context/state model --- examples/slimed/src/entities/mod.rs | 4 ++-- examples/slimed/src/main.rs | 18 ++++++++++++------ examples/slimed/src/states.rs | 8 ++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/examples/slimed/src/entities/mod.rs b/examples/slimed/src/entities/mod.rs index aa00f5c..3af0e80 100644 --- a/examples/slimed/src/entities/mod.rs +++ b/examples/slimed/src/entities/mod.rs @@ -385,8 +385,8 @@ pub struct Pickuper; pub fn init_everything(context: &mut Game, map_file: &Path, min_spawn_time: f32, max_spawn_time: f32, max_slimes: usize) { init_entities(&mut context.core.entities); - init_component_system(&mut context.component_systems); - init_events(&mut context.event_listeners); + init_component_system(&mut context.support.component_systems); + init_events(&mut context.support.event_listeners); context.core.event_publisher.clear(); context.core.tilemap = TileMap::load_from(map_file).unwrap(); diff --git a/examples/slimed/src/main.rs b/examples/slimed/src/main.rs index 809c6e2..22e1fdf 100644 --- a/examples/slimed/src/main.rs +++ b/examples/slimed/src/main.rs @@ -54,12 +54,16 @@ pub struct Core { pub sprite_render_list: Vec<(EntityId, Vector2, BlitMethod)>, } -pub struct Game { - pub core: Core, +pub struct Support { pub component_systems: ComponentSystems, pub event_listeners: EventListeners, } +pub struct Game { + pub core: Core, + pub support: Support, +} + impl Game { pub fn new(mut system: System) -> Result { let palette = load_palette(Path::new("./assets/db16.pal"))?; @@ -136,14 +140,16 @@ impl Game { sparkles_animation_def, sprite_render_list: Vec::with_capacity(1024), }, - component_systems, - event_listeners, + support: Support { + component_systems, + event_listeners, + }, }) } pub fn do_events(&mut self) { - self.event_listeners.take_queue_from(&mut self.core.event_publisher); - self.event_listeners.dispatch_queue(&mut self.core); + self.support.event_listeners.take_queue_from(&mut self.core.event_publisher); + self.support.event_listeners.dispatch_queue(&mut self.core); } pub fn update_frame_delta(&mut self, last_ticks: u64) -> u64 { diff --git a/examples/slimed/src/states.rs b/examples/slimed/src/states.rs index aabe891..a2ade71 100644 --- a/examples/slimed/src/states.rs +++ b/examples/slimed/src/states.rs @@ -46,14 +46,14 @@ impl AppState for MainMenuState { } context.do_events(); - context.component_systems.update(&mut context.core); + context.support.component_systems.update(&mut context.core); None } fn render(&mut self, state: State, context: &mut Game) { context.core.tilemap.draw(&mut context.core.system.video, &context.core.tiles, 0, 0); - context.component_systems.render(&mut context.core); + context.support.component_systems.render(&mut context.core); let x = 32; let y = 160; @@ -155,7 +155,7 @@ impl AppState for GamePlayState { } context.do_events(); - context.component_systems.update(&mut context.core); + context.support.component_systems.update(&mut context.core); None } @@ -164,7 +164,7 @@ impl AppState for GamePlayState { if let Some((_, camera)) = context.core.entities.components::().single() { context.core.tilemap.draw(&mut context.core.system.video, &context.core.tiles, camera.x, camera.y); } - context.component_systems.render(&mut context.core); + context.support.component_systems.render(&mut context.core); if self.in_menu { let x = 32;