moria/src/loading.rs

34 lines
868 B
Rust

use bevy::{
prelude::*,
render::texture::{AddressMode, FilterMode},
};
use crate::AppState;
pub struct LoadedAssets {
pub floor: Handle<Texture>,
}
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<Texture>>,
mut state: ResMut<State<AppState>>,
) {
if let Some(t) = textures.get_mut(&assets.floor) {
t.sampler.address_mode_u = AddressMode::MirrorRepeat;
t.sampler.address_mode_v = AddressMode::Repeat;
t.sampler.address_mode_w = AddressMode::Repeat;
t.sampler.mipmap_filter = FilterMode::Linear;
state.set(AppState::Game).unwrap();
}
}