moria/src/loading.rs

42 lines
1.0 KiB
Rust
Raw Normal View History

2021-10-01 17:56:26 +00:00
use bevy::{
prelude::*,
render::{
render_resource::{AddressMode, FilterMode, SamplerDescriptor},
texture::ImageSampler,
},
2021-10-01 17:56:26 +00:00
};
use crate::AppState;
pub struct LoadedAssets {
2022-07-06 23:12:08 +00:00
pub floor: Handle<Image>,
2021-10-01 17:56:26 +00:00
}
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>,
2022-07-06 23:12:08 +00:00
mut textures: ResMut<Assets<Image>>,
2021-10-01 17:56:26 +00:00
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);
2021-10-01 17:56:26 +00:00
state.set(AppState::Game).unwrap();
}
}