use bevy_ecs::world::World; use components::{Camera, Texture, Transform}; use nalgebra::{Rotation2, Rotation3, Scale2, Scale3, Translation2, Translation3, Vector3}; use rendering::{assets::Assets, App}; use tracing::info; use winit::event_loop::{ControlFlow, EventLoop}; #[cfg(target_arch = "wasm32")] #[path = "wasm/mod.rs"] pub mod platform; #[cfg(not(target_arch = "wasm32"))] #[path = "native/mod.rs"] pub mod platform; pub mod rendering; pub mod components; // Hi, you've found the real main function! This is called AFTER platform-specific initialization code. pub fn start() { info!( "Hello, world! StarKingdoms.TK v{} says hello, running on {}", env!("CARGO_PKG_VERSION"), if cfg!(target_arch = "wasm32") { "wasm" } else { "native" } ); info!("Creating the ECS world..."); let mut world = World::new(); world.insert_resource(Camera { x: 0.0, y: 0.0, zoom: 1.0, width: 0, height: 0, }); world.insert_resource(Assets::new()); world.spawn((Transform { translation: Translation3::new(0.0, 0.0, 0.0), rotation: Rotation3::from_axis_angle(&Vector3::z_axis(), 0.0), scale: Scale3::new(20.0, 20.0, 1.0), }, Texture { name: "hearty.svg".to_string() })); let event_loop = EventLoop::new().unwrap(); event_loop.set_control_flow(ControlFlow::Wait); event_loop.run_app(&mut App::new(world)).unwrap(); }