42 lines
1.0 KiB
Rust
42 lines
1.0 KiB
Rust
use bevy::{
|
|
prelude::*,
|
|
render::{
|
|
render_resource::{AddressMode, FilterMode, SamplerDescriptor},
|
|
texture::ImageSampler,
|
|
},
|
|
};
|
|
|
|
use crate::AppState;
|
|
|
|
pub struct LoadedAssets {
|
|
pub floor: Handle<Image>,
|
|
}
|
|
impl FromWorld for LoadedAssets {
|
|
fn from_world(world: &mut World) -> Self {
|
|
let server = world.get_resource::<AssetServer>().unwrap();
|
|
|
|
let floor = server.load("textures/floor.png");
|
|
Self { floor }
|
|
}
|
|
}
|
|
|
|
pub fn loading(
|
|
assets: Res<LoadedAssets>,
|
|
mut textures: ResMut<Assets<Image>>,
|
|
mut state: ResMut<State<AppState>>,
|
|
) {
|
|
if let Some(t) = textures.get_mut(&assets.floor) {
|
|
let s = SamplerDescriptor {
|
|
address_mode_u: AddressMode::MirrorRepeat,
|
|
address_mode_v: AddressMode::Repeat,
|
|
address_mode_w: AddressMode::Repeat,
|
|
mipmap_filter: FilterMode::Linear,
|
|
..default()
|
|
};
|
|
|
|
t.sampler_descriptor = ImageSampler::Descriptor(s);
|
|
|
|
state.set(AppState::Game).unwrap();
|
|
}
|
|
}
|