Skip to content
Snippets Groups Projects
Select Git revision
  • c847117f375224371e1439c24aedb9b6fef51dca
  • main default protected
  • battery
3 results

main.rs

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    main.rs 1.61 KiB
    mod assets;
    mod audio;
    mod components;
    mod error;
    mod grid;
    mod gridcursor;
    mod lighting;
    mod machine;
    mod power;
    
    use crate::{
        audio::AudioPlugin,
        components::GridPos,
        grid::GridPlugin,
        gridcursor::GridCursorPlugin,
        lighting::{LightEmitter, LightingPlugin},
        machine::MachinePlugin,
        power::PowerPlugin,
    };
    
    use assets::AssetLoadingPlugin;
    use bevy::{prelude::*, render::texture::ImageSettings};
    
    pub const RENDER_ORDER: RenderOrder = RenderOrder {
        grid: 0.0,
        machine: 1.0,
        light: 2.0,
        gridcursor: 3.0,
    };
    
    pub struct RenderOrder {
        pub grid: f32,
        pub machine: f32,
        pub light: f32,
        pub gridcursor: f32,
    }
    
    fn main() {
        App::new()
            .insert_resource(WindowDescriptor {
                width: 400.0,
                height: 400.0,
                title: String::from("Bevy Jam"),
                ..default()
            })
            .insert_resource(ImageSettings::default_nearest())
            .insert_resource(Msaa { samples: 1 })
            .add_plugins(DefaultPlugins)
            .add_plugin(AssetLoadingPlugin)
            .add_startup_system(main_setup_system)
            .add_plugin(MachinePlugin)
            .add_plugin(GridPlugin)
            .add_plugin(GridCursorPlugin)
            .add_plugin(LightingPlugin)
            .add_plugin(PowerPlugin)
            .add_plugin(AudioPlugin)
            .run();
    }
    
    fn main_setup_system(mut commands: Commands) {
        // camera
        commands.spawn_bundle(Camera2dBundle::default());
    
        // light
        commands
            .spawn()
            .insert(LightEmitter {
                power: 1.0,
                radius: 200.0,
                flicker: 0.05,
            })
            .insert(GridPos::new(4, 4, 0));
    }