merosity 0.1.0

(wip) competitive stacker game
// merosity, online stacker game
//
// Copyright (c) 2023 rini
// SPDX-License-Identifier: Apache-2.0

use bevy::prelude::*;
use bevy::render::camera::ScalingMode;

use engine::Engine;
use scenes::Scenes;

mod engine;
mod scenes;

#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, States)]
enum GameState {
    #[default]
    Loading,
    Gaming,
}

fn setup(mut cmd: Commands, mut state: ResMut<NextState<GameState>>) {
    let mut camera = Camera2dBundle::default();
    camera.projection.scaling_mode = ScalingMode::FixedVertical(1600.0);
    cmd.spawn(camera);

    state.set(GameState::Gaming);
}

fn main() {
    App::new()
        .init_resource::<Engine>()
        .insert_resource(ClearColor(Color::rgb_u8(0x15, 0x15, 0x15)))
        .add_state::<GameState>()
        .add_plugins(DefaultPlugins.set(WindowPlugin {
            primary_window: Some(Window {
                title: "mero".to_owned(),
                canvas: Some("#mero".to_owned()),
                fit_canvas_to_parent: true,
                ..Default::default()
            }),
            ..Default::default()
        }))
        .add_systems(Startup, setup)
        .add_plugins(Scenes)
        .run();
}