Some refactoring to prep for better compartmentalization later
This commit is contained in:
64
src/main.rs
64
src/main.rs
@@ -5,8 +5,9 @@ use bevy::{image::Image, prelude::*};
|
|||||||
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, States)]
|
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Hash, States)]
|
||||||
enum AppState {
|
enum AppState {
|
||||||
#[default]
|
#[default]
|
||||||
Setup,
|
Init,
|
||||||
Preload,
|
Preload,
|
||||||
|
LevelLoad,
|
||||||
Main,
|
Main,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,6 +36,7 @@ fn main() {
|
|||||||
.insert_resource(TilemapStuff::default())
|
.insert_resource(TilemapStuff::default())
|
||||||
.add_systems(Startup, init)
|
.add_systems(Startup, init)
|
||||||
.add_systems(Update, loadloop.run_if(in_state(AppState::Preload)))
|
.add_systems(Update, loadloop.run_if(in_state(AppState::Preload)))
|
||||||
|
.add_systems(OnEnter(AppState::LevelLoad), levelload)
|
||||||
.add_systems(Update, gameloop.run_if(in_state(AppState::Main)));
|
.add_systems(Update, gameloop.run_if(in_state(AppState::Main)));
|
||||||
|
|
||||||
app.run();
|
app.run();
|
||||||
@@ -45,8 +47,6 @@ fn init(
|
|||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
mut state: ResMut<NextState<AppState>>,
|
mut state: ResMut<NextState<AppState>>,
|
||||||
mut tmap_stuff: ResMut<TilemapStuff>,
|
mut tmap_stuff: ResMut<TilemapStuff>,
|
||||||
mut t_layouts: ResMut<Assets<TextureAtlasLayout>>,
|
|
||||||
lvl: Res<LevelData>,
|
|
||||||
) {
|
) {
|
||||||
println!("Hello Bevy!");
|
println!("Hello Bevy!");
|
||||||
|
|
||||||
@@ -60,30 +60,6 @@ fn init(
|
|||||||
tmap_stuff.img_id = Some(sprite.id());
|
tmap_stuff.img_id = Some(sprite.id());
|
||||||
tmap_stuff.img_handle = Some(sprite.clone());
|
tmap_stuff.img_handle = Some(sprite.clone());
|
||||||
|
|
||||||
let t_layout = TextureAtlasLayout::from_grid(uvec2(16, 16), 12, 8, Some(uvec2(1, 1)), None);
|
|
||||||
let t_handle = t_layouts.add(t_layout);
|
|
||||||
|
|
||||||
// create map from lvl data
|
|
||||||
|
|
||||||
let lvl = &lvl.ldtk_proj.levels[0];
|
|
||||||
|
|
||||||
let mut lyr_dep = 50f32;
|
|
||||||
lvl.layer_instances.iter().for_each(|li| {
|
|
||||||
li.al_tiles.iter().for_each(|t| {
|
|
||||||
commands.spawn((
|
|
||||||
Sprite::from_atlas_image(
|
|
||||||
sprite.clone(),
|
|
||||||
TextureAtlas {
|
|
||||||
layout: t_handle.clone(),
|
|
||||||
index: t.ty as usize,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
Transform::from_xyz(t.px_coords.x as f32, 256. - t.px_coords.y as f32, lyr_dep),
|
|
||||||
));
|
|
||||||
});
|
|
||||||
lyr_dep -= 0.1;
|
|
||||||
});
|
|
||||||
|
|
||||||
state.set(AppState::Preload);
|
state.set(AppState::Preload);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +85,7 @@ fn loadloop(
|
|||||||
if tmap_stuff.img_id.as_ref().unwrap() == id {
|
if tmap_stuff.img_id.as_ref().unwrap() == id {
|
||||||
println!("Loaded tmap");
|
println!("Loaded tmap");
|
||||||
|
|
||||||
next_state.set(AppState::Main);
|
next_state.set(AppState::LevelLoad);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
@@ -117,4 +93,36 @@ fn loadloop(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn levelload(
|
||||||
|
mut commands: Commands,
|
||||||
|
lvl: Res<LevelData>,
|
||||||
|
tmap_stuff: Res<TilemapStuff>,
|
||||||
|
mut ta_layouts: ResMut<Assets<TextureAtlasLayout>>,
|
||||||
|
) {
|
||||||
|
let tmap_sprite = tmap_stuff.img_handle.as_ref().unwrap();
|
||||||
|
let ta_layout = TextureAtlasLayout::from_grid(uvec2(16, 16), 12, 8, Some(uvec2(1, 1)), None);
|
||||||
|
let ta_handle = ta_layouts.add(ta_layout);
|
||||||
|
|
||||||
|
// create map from lvl data
|
||||||
|
|
||||||
|
let lvl = &lvl.ldtk_proj.levels[0];
|
||||||
|
|
||||||
|
let mut lyr_dep = 50f32;
|
||||||
|
lvl.layer_instances.iter().for_each(|li| {
|
||||||
|
li.al_tiles.iter().for_each(|t| {
|
||||||
|
commands.spawn((
|
||||||
|
Sprite::from_atlas_image(
|
||||||
|
tmap_sprite.clone(),
|
||||||
|
TextureAtlas {
|
||||||
|
layout: ta_handle.clone(),
|
||||||
|
index: t.ty as usize,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
Transform::from_xyz(t.px_coords.x as f32, 256. - t.px_coords.y as f32, lyr_dep),
|
||||||
|
));
|
||||||
|
});
|
||||||
|
lyr_dep -= 0.1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
fn gameloop() {}
|
fn gameloop() {}
|
||||||
|
|||||||
Reference in New Issue
Block a user