Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion src/notes.rs → src/gameplay.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,40 @@ impl FromWorld for NoteMaterialResource {
}
}

// Texture for lanes
pub struct LaneMaterialResource {
lane_texture: Handle<ColorMaterial>,
}
impl FromWorld for LaneMaterialResource {
fn from_world(world: &mut World) -> Self {
let world = world.cell();

let mut materials = world.get_resource_mut::<Assets<ColorMaterial>>().unwrap();
let asset_server = world.get_resource::<AssetServer>().unwrap();

let lane_handle = asset_server.load("images/note-lane.png");
LaneMaterialResource {
lane_texture: materials.add(lane_handle.into()),
}
}
}

// Spawn Lane
struct Lanes;

fn setup_lane(mut commands: Commands, materials: Res<LaneMaterialResource>) {
let transform = Transform::from_translation(Vec3::new(0.,LANE_Y_AXIS, 1.));
commands
.spawn_bundle(SpriteBundle {
material: materials.lane_texture.clone(),
sprite: Sprite::new(Vec2::new(1366., 200.)),
transform,
..Default::default()
})
.insert(Lanes);
}


// Note component
struct Note {
speed: Speed,
Expand Down Expand Up @@ -134,7 +168,9 @@ impl Plugin for NotesPlugin {
app
// Initialize Resources
.init_resource::<NoteMaterialResource>()
.add_startup_system(setup_target_notes.system())
.init_resource::<LaneMaterialResource>()
.add_system(setup_target_notes.system().after("lane"))
.add_system(setup_lane.system().label("lane"))
// Add systems
.add_system(spawn_notes.system())
.add_system(move_notes.system())
Expand Down
4 changes: 2 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use bevy::{input::system::exit_on_esc_system, prelude::*};

mod notes;
mod gameplay;
mod consts;
mod types;
mod ui;

use notes::NotesPlugin;
use gameplay::NotesPlugin;
use ui::UIPlugin;

fn main() {
Expand Down
36 changes: 0 additions & 36 deletions src/ui.rs
Original file line number Diff line number Diff line change
@@ -1,38 +1,4 @@
use bevy::prelude::*;
use crate::consts::*;

// Texture for UI (lanes, drum, background etc.)
struct UIMaterialResource {
lane_texture: Handle<ColorMaterial>,
}
impl FromWorld for UIMaterialResource {
fn from_world(world: &mut World) -> Self {
let world = world.cell();

let mut materials = world.get_resource_mut::<Assets<ColorMaterial>>().unwrap();
let asset_server = world.get_resource::<AssetServer>().unwrap();

let lane_handle = asset_server.load("images/note-lane.png");
UIMaterialResource {
lane_texture: materials.add(lane_handle.into()),
}
}
}

// Spawn Lane
struct Lanes;

fn setup_lane(mut commands: Commands, materials: Res<UIMaterialResource>) {
let transform = Transform::from_translation(Vec3::new(0.,LANE_Y_AXIS, 1.));
commands
.spawn_bundle(SpriteBundle {
material: materials.lane_texture.clone(),
sprite: Sprite::new(Vec2::new(1366., 200.)),
transform,
..Default::default()
})
.insert(Lanes);
}

// Setup time UI
fn setup_ui(
Expand Down Expand Up @@ -129,8 +95,6 @@ pub struct UIPlugin;
impl Plugin for UIPlugin {
fn build(&self, app: &mut AppBuilder) {
app
.init_resource::<UIMaterialResource>()
.add_startup_system(setup_lane.system())
.add_startup_system(setup_ui.system())
.add_system(update_time_text.system());
}
Expand Down