generated from hheik/bevy-template
36 lines
1.2 KiB
Rust
36 lines
1.2 KiB
Rust
use crate::{debug, game_setup, util};
|
|
use bevy::prelude::*;
|
|
|
|
pub mod grid;
|
|
pub mod prefab;
|
|
mod systems;
|
|
pub mod tetris;
|
|
|
|
pub const PIXEL_SCALE: f32 = 3.0;
|
|
|
|
pub fn init(app: &mut App) {
|
|
let app = app.add_plugins((
|
|
game_setup::GameSetupPlugin,
|
|
util::UtilPlugin,
|
|
debug::DebugPlugin,
|
|
));
|
|
|
|
app.add_event::<tetris::OnPiecePlaced>()
|
|
.register_type::<tetris::GameArea>()
|
|
.register_type::<tetris::GameGravity>()
|
|
.register_type::<tetris::BlockSet>()
|
|
.register_type::<tetris::NextPiece>()
|
|
.register_type::<tetris::Piece>()
|
|
.register_type::<tetris::PieceControls>()
|
|
.register_type::<tetris::ControllablePiece>()
|
|
.register_type::<tetris::Gravity>()
|
|
.register_type::<tetris::Block>()
|
|
.register_type::<prefab::PieceType>()
|
|
.register_type::<grid::Grid>()
|
|
.register_type::<grid::GridTransform>()
|
|
.add_systems(Startup, systems::setup_game_scene)
|
|
.add_systems(PreUpdate, (systems::repeat_inputs, systems::apply_gravity))
|
|
.add_systems(Update, (systems::demo_2d, systems::apply_piece_movement))
|
|
.add_systems(PostUpdate, systems::grid_positioning);
|
|
}
|