Files
storyteller-bevy/studio/src/lib.rs
T
2023-10-10 19:46:40 -04:00

70 lines
1.7 KiB
Rust

#![allow(clippy::type_complexity)]
use bevy::prelude::*;
use input::StudioInputPlugin;
use interaction::InteractionPlugin;
#[rustfmt::skip]
use orbit_cam::{
// CameraMotionSystem,
// OrbitCam,
OrbitCamPlugin,
};
use skybox::SkyboxPlugin;
use test_scene::TestScenePlugin;
use ui::UiLayerPlugin;
use viewport::ViewportSize;
use wasm_bindgen::prelude::*;
mod input;
mod interaction;
mod orbit_cam;
mod skybox;
mod test_scene;
mod ui;
mod viewport;
// #[cfg(target_arch = "wasm32")]
mod wasm;
#[wasm_bindgen]
pub fn init(viewport_size: ViewportSize) {
#[cfg(target_arch = "wasm32")]
console_error_panic_hook::set_once();
let mut app = App::new();
#[cfg(target_arch = "wasm32")]
app.add_plugins(viewport::wasm::ViewportPlugin);
app.add_plugins((
DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window {
resolution: viewport_size.into(),
title: "Storyteller Studio".into(),
..default()
}),
..default()
}),
StudioInputPlugin,
InteractionPlugin,
OrbitCamPlugin,
TestScenePlugin,
SkyboxPlugin,
UiLayerPlugin,
))
// .add_systems(Update, draw_world_axes.after(CameraMotionSystem))
.run();
}
// fn draw_world_axes(mut gizmos: Gizmos, q: Query<&OrbitCam>) {
// let &OrbitCam { focus, radius, .. } = q.single();
// let mut draw_axis = |direction: Vec3, color: Color| {
// let end = focus + direction * radius / 15.;
// gizmos.line(focus, end, color);
// };
// draw_axis(Vec3::X, Color::RED);
// draw_axis(Vec3::Y, Color::GREEN);
// draw_axis(Vec3::Z, Color::BLUE);
// }