use bevy::{
    asset::LoadState,
    core_pipeline::Skybox,
    prelude::*,
    render::render_resource::{TextureViewDescriptor, TextureViewDimension},
};

#[derive(Resource)]
pub struct SkyCubeMap {
    pub is_loaded: bool,
    pub image_handle: Handle<Image>,
}
pub fn fix_cubemap(
    asset_server: ResMut<AssetServer>,
    mut images: ResMut<Assets<Image>>,
    mut cubemap: ResMut<SkyCubeMap>,
) {
    if !cubemap.is_loaded && asset_server.load_state(&cubemap.image_handle) == LoadState::Loaded {
        if let Some(skymap_image) = images.get_mut(&cubemap.image_handle) {
            cubemap.is_loaded = true;
            skymap_image.reinterpret_stacked_2d_as_array(6);
            skymap_image.texture_view_descriptor = Some(TextureViewDescriptor {
                dimension: Some(TextureViewDimension::Cube),
                ..default()
            });
        }
    }
}