Docs for lib.rs
This commit is contained in:
26
src/lib.rs
26
src/lib.rs
@@ -1,3 +1,7 @@
|
|||||||
|
//! Asteroids, implemented as a Bevy plugin.
|
||||||
|
//!
|
||||||
|
//! Compile-time configurables can be found in the [`config`] module.
|
||||||
|
|
||||||
pub mod config;
|
pub mod config;
|
||||||
mod events;
|
mod events;
|
||||||
mod machinery;
|
mod machinery;
|
||||||
@@ -24,6 +28,7 @@ use bevy_rapier2d::{
|
|||||||
use machinery::Lifetime;
|
use machinery::Lifetime;
|
||||||
use resources::{GameAssets, Lives, Score, WorldSize};
|
use resources::{GameAssets, Lives, Score, WorldSize};
|
||||||
|
|
||||||
|
/// The main game plugin.
|
||||||
pub struct AsteroidPlugin;
|
pub struct AsteroidPlugin;
|
||||||
|
|
||||||
impl Plugin for AsteroidPlugin {
|
impl Plugin for AsteroidPlugin {
|
||||||
@@ -90,6 +95,7 @@ fn debug_collision_event_printer(mut collision_events: EventReader<CollisionEven
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The game's main state tracking mechanism, registered with Bevy as a [`State`](`bevy::prelude::State`).
|
||||||
#[derive(Clone, Debug, Eq, Hash, PartialEq, States)]
|
#[derive(Clone, Debug, Eq, Hash, PartialEq, States)]
|
||||||
pub enum GameState {
|
pub enum GameState {
|
||||||
TitleScreen, // Program is started. Present title screen and await user start
|
TitleScreen, // Program is started. Present title screen and await user start
|
||||||
@@ -102,9 +108,9 @@ fn spawn_camera(mut commands: Commands) {
|
|||||||
commands.spawn(Camera2d);
|
commands.spawn(Camera2d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/// Player's thruster control system.
|
||||||
Checks if "W" is pressed and increases velocity accordingly.
|
///
|
||||||
*/
|
/// Checks if "W" is pressed and increases velocity accordingly.
|
||||||
fn input_ship_thruster(
|
fn input_ship_thruster(
|
||||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||||
mut query: Query<(&mut physics::Velocity, &Transform, &mut Children), With<Ship>>,
|
mut query: Query<(&mut physics::Velocity, &Transform, &mut Children), With<Ship>>,
|
||||||
@@ -135,10 +141,10 @@ fn input_ship_thruster(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/// Player's rotation control system.
|
||||||
Checks if "A" or "D" is pressed and updates the player's Rotation component accordingly
|
///
|
||||||
Does *not* rotate the graphical widget! (that's done by the `apply_rotation_to_mesh` system)
|
/// Checks if "A" or "D" is pressed and updates the player's [`AngularVelocity`]
|
||||||
*/
|
/// component accordingly.
|
||||||
fn input_ship_rotation(
|
fn input_ship_rotation(
|
||||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||||
mut query: Query<&mut AngularVelocity, With<Ship>>,
|
mut query: Query<&mut AngularVelocity, With<Ship>>,
|
||||||
@@ -157,6 +163,12 @@ fn input_ship_rotation(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Player's gun trigger.
|
||||||
|
///
|
||||||
|
/// Checks if the spacebar has just been pressed, spawning a bullet if so.
|
||||||
|
///
|
||||||
|
/// TODO: Hook up a timer to control weapon fire-rate. Something will have to
|
||||||
|
/// tick those timers. Maybe this system?
|
||||||
fn input_ship_shoot(
|
fn input_ship_shoot(
|
||||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||||
ship: Single<(&Transform, &physics::Velocity), With<Ship>>,
|
ship: Single<(&Transform, &physics::Velocity), With<Ship>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user