Fix visibility & add constructors, program builds
All checks were successful
Basic checks / Basic build-and-test supertask (push) Successful in 6m29s

This commit is contained in:
2025-07-29 12:54:09 -05:00
parent 71ec77f5b1
commit 911b6c5fe7
2 changed files with 17 additions and 10 deletions

View File

@@ -1,3 +1,5 @@
use std::time::Duration;
/// This is the module containing all the rock-related things
/// not... not the whole game.
use bevy::prelude::*;
@@ -5,16 +7,16 @@ use bevy::prelude::*;
use crate::{GameAssets, Position, Rotation, Velocity};
#[derive(Component, Deref, DerefMut)]
struct Asteroid(AsteroidSize);
pub struct Asteroid(AsteroidSize);
enum AsteroidSize {
pub enum AsteroidSize {
SMALL,
MEDIUM,
LARGE,
}
#[derive(Resource)]
struct AsteroidSpawner {
pub struct AsteroidSpawner {
timer: Timer,
// TODO: Configurables?
// - interval
@@ -22,9 +24,17 @@ struct AsteroidSpawner {
// - size distribution
}
impl AsteroidSpawner {
pub fn new() -> Self {
Self {
timer: Timer::new(Duration::from_secs(3), TimerMode::Repeating),
}
}
}
/// Update the asteroid spawn timer and spawn any asteroids
/// that are due this frame.
fn tick_asteroid_manager(
pub fn tick_asteroid_manager(
mut commands: Commands,
mut spawner: ResMut<AsteroidSpawner>,
game_assets: Res<GameAssets>,

View File

@@ -3,10 +3,9 @@ pub mod config;
mod preparation_widget;
mod title_screen;
use std::time::Duration;
use crate::config::{BACKGROUND_COLOR, PLAYER_SHIP_COLOR, SHIP_ROTATION, SHIP_THRUST, WINDOW_SIZE};
use asteroids::AsteroidSpawner;
use bevy::prelude::*;
use bevy_inspector_egui::prelude::ReflectInspectorOptions;
use bevy_inspector_egui::InspectorOptions;
@@ -29,9 +28,7 @@ impl Plugin for AsteroidPlugin {
.insert_resource(Lives(3))
.register_type::<Lives>()
.insert_resource(Score(0))
.insert_resource(AsteroidSpawner {
timer: Timer::new(Duration::from_secs(3), TimerMode::Repeating),
})
.insert_resource(AsteroidSpawner::new())
.init_resource::<GameAssets>()
.add_systems(Startup, spawn_camera)
.add_systems(OnEnter(GameState::Playing), (spawn_player, spawn_ui))
@@ -41,7 +38,7 @@ impl Plugin for AsteroidPlugin {
input_ship_thruster,
input_ship_rotation,
wrap_entities,
tick_asteroid_manager,
asteroids::tick_asteroid_manager,
)
.run_if(in_state(GameState::Playing)),
)