From 15ebe0e8adbbb70994d521b5711875efcff1edc0 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 2 Aug 2026 18:15:48 +0200 Subject: fix: create & use scene --- src/main.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index b776141..faf38b3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,16 +17,17 @@ use engine::color::{Color, Rgb}; use engine::data_types::dimens::Dimens3; use engine::ecs::actions::Actions; use engine::ecs::error::Context as _; +use engine::ecs::pair::ChildOf; use engine::ecs::phase::START as START_PHASE; use engine::ecs::query::term::With; use engine::ecs::sole::Single; use engine::ecs::system::initializable::Initializable; use engine::ecs::system::Into; -use engine::ecs::Query; +use engine::ecs::{Query, pair}; use engine::image::{Format as ImageFormat, Image}; use engine::input::keyboard::Keyboard; use engine::input::Extension as InputExtension; -use engine::lighting::{AttenuationParams, GlobalLight, PointLight}; +use engine::lighting::{AttenuationParams, PointLight}; use engine::material::{Flags as MaterialFlags, Material}; use engine::mesh::cube::{ create as cube_mesh_create, @@ -38,6 +39,7 @@ use engine::rendering::{ GraphicsProperties, TargetWindow as RenderingTargetWindow, }; +use engine::scene::{Active as ActiveScene, Scene}; use engine::transform::WorldPosition; use engine::ui::dear_imgui::{ Context as DearImguiContext, @@ -98,8 +100,6 @@ impl engine::ecs::extension::Extension for Application { fn collect(self, mut collector: engine::ecs::extension::Collector<'_>) { - let _ = collector.add_sole(GlobalLight::default()); - collector.add_system(*START_PHASE, init); collector.add_system(*engine::ecs::phase::UPDATE, toggle_ui); @@ -136,6 +136,11 @@ fn init(mut assets: Single, mut actions: Actions) -> Result<(), EngineEr ), ); + let scene_ent_id = actions.spawn_named( + "Scene", + (Scene, ActiveScene) + ); + actions.spawn_named( "Main camera", ( @@ -145,6 +150,7 @@ fn init(mut assets: Single, mut actions: Actions) -> Result<(), EngineEr }, ActiveCamera, FlyCamera::default(), + pair!(ChildOf, { scene_ent_id }) ), ); @@ -183,6 +189,7 @@ fn init(mut assets: Single, mut actions: Actions) -> Result<(), EngineEr .build() })), MaterialFlags::builder().use_ambient_color(true).build(), + pair!(ChildOf, { scene_ent_id }) ), ); @@ -193,6 +200,7 @@ fn init(mut assets: Single, mut actions: Actions) -> Result<(), EngineEr assets.load::(Path::new(RESOURCE_DIR).join("teapot.obj")), ), WorldPosition::from(Vec3 { x: 1.6, y: 0.0, z: 0.0 }), + pair!(ChildOf, { scene_ent_id }) ), ); @@ -262,3 +270,4 @@ fn toggle_ui( Ok(()) } + -- cgit v1.2.3-18-g5258