use bevy::asset::LoadState;
use bevy::prelude::*;

use crate::assets::{AssetTypeLoader, SpriteSheetConfig};
use crate::system::AppState;

pub fn start_preload_resources(
	mut _commands: Commands,
	mut next_state: ResMut<NextState<AppState>>,
) {
	// TODO: Add preload commands here
	next_state.set(AppState::Setup);
}

pub fn start_load_resources(mut loader: AssetTypeLoader) {}

pub fn check_load_resources(loader: AssetTypeLoader, mut next_state: ResMut<NextState<AppState>>) {
	let load_states = loader.get_all_load_state();
	if load_states.iter().all(|state| *state == LoadState::Loaded) {
		info!("Assets loaded successfully");
		next_state.set(AppState::InGame);
	}
}