From db238c3248938eda6463c75ceae7a82ff3bb1237 Mon Sep 17 00:00:00 2001 From: hheik <4469778+hheik@users.noreply.github.com> Date: Sat, 23 Aug 2025 00:38:10 +0300 Subject: [PATCH] Added piece collision --- src/game.rs | 5 +- src/game/systems.rs | 4 + src/game/systems/game_scene.rs | 150 +++++---------------------------- src/game/systems/input.rs | 53 ++++++++++++ src/game/systems/movement.rs | 99 ++++++++++++++++++++++ src/game/tetris.rs | 75 ++++++++++------- src/game/tetris/input.rs | 57 +++++++++++++ 7 files changed, 285 insertions(+), 158 deletions(-) create mode 100644 src/game/systems/input.rs create mode 100644 src/game/systems/movement.rs create mode 100644 src/game/tetris/input.rs diff --git a/src/game.rs b/src/game.rs index f6fb94b..c412392 100644 --- a/src/game.rs +++ b/src/game.rs @@ -17,16 +17,19 @@ pub fn init(app: &mut App) { app.add_event::() .register_type::() + .register_type::() + .register_type::() .register_type::() .register_type::() .register_type::() .register_type::() + .register_type::() .register_type::() .register_type::() .register_type::() .register_type::() .add_systems(Startup, systems::setup_game_scene) - .add_systems(PreUpdate, (systems::block_control, systems::apply_gravity)) + .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); } diff --git a/src/game/systems.rs b/src/game/systems.rs index 09618bd..f93944a 100644 --- a/src/game/systems.rs +++ b/src/game/systems.rs @@ -1,7 +1,11 @@ mod demo; mod game_scene; mod grid; +mod input; +mod movement; pub use demo::*; pub use game_scene::*; pub use grid::*; +pub use input::*; +pub use movement::*; diff --git a/src/game/systems/game_scene.rs b/src/game/systems/game_scene.rs index afb6005..284c96f 100644 --- a/src/game/systems/game_scene.rs +++ b/src/game/systems/game_scene.rs @@ -2,11 +2,7 @@ use std::collections::{HashMap, HashSet}; use bevy::prelude::*; -use crate::game::{ - grid::*, - prefab::*, - tetris::{piece_input, *}, -}; +use crate::game::{grid::*, prefab::*, tetris::*}; pub fn setup_game_scene(world: &mut World) { let game_area = GameArea::default(); @@ -35,127 +31,6 @@ pub fn setup_game_scene(world: &mut World) { world.flush(); } -pub fn block_control( - time: Res