Files
shinespark/src/main.rs
T

50 lines
1.6 KiB
Rust

use bevy::asset::AssetMode::Processed;
#[cfg(feature = "debug_features")]
use bevy::camera_controller::free_camera::FreeCameraPlugin;
use bevy::gltf::GltfPlugin;
use bevy::image::{ImageAddressMode, ImagePlugin, ImageSamplerDescriptor};
use bevy::prelude::*;
#[cfg(feature = "debug_features")]
use bevy_egui::EguiPlugin;
#[cfg(feature = "debug_features")]
use bevy_inspector_egui::quick::WorldInspectorPlugin;
fn main() -> AppExit {
// A `Repeat` sampler so the tileable materials authored in the
// editor render the same way at runtime; Bevy's default
// `ClampToEdge` smears texture edges on brush geometry.
let default_sampler = ImageSamplerDescriptor::linear()
.set_address_mode(ImageAddressMode::Repeat)
.set_anisotropic_filter(16)
.clone();
let default_plugins = DefaultPlugins
.set(ImagePlugin {
default_sampler: default_sampler.clone(),
})
.set(GltfPlugin {
default_sampler,
..default()
})
.set(AssetPlugin {
mode: Processed,
use_asset_processor_override: Some(cfg!(feature = "development")),
..default()
});
let mut app = App::new();
app.add_plugins(default_plugins)
.add_plugins(avian3d::prelude::PhysicsPlugins::default())
.add_plugins(shinespark::GamePlugin)
.insert_resource(Time::<Fixed>::from_hz(60.0));
#[cfg(feature = "debug_features")]
app.add_plugins((
FreeCameraPlugin,
EguiPlugin::default(),
WorldInspectorPlugin::default(),
));
app.run()
}