asset loading

This commit is contained in:
2024-07-29 20:53:41 -04:00
parent 2e9f327c57
commit ad39a93028
3 changed files with 9 additions and 11 deletions

View File

@@ -1,17 +1,13 @@
use asset_loader::create_asset_loader;
use bevy::prelude::*;
use bevy::{asset::Asset, reflect::TypePath, render::render_resource::encase::rts_array::Length};
use serde::{Deserialize, Serialize};
use bevy::render::render_resource::encase::rts_array::Length;
use crate::{biome_asset::BiomeAsset, map::biome_map::BiomeData};
use bevy_asset_loader::prelude::*;
#[derive(AssetCollection, Debug, Clone, Resource)]
pub struct BiomePainterAsset {
// #[serde(skip)]
#[asset(key = "biomes", collection(typed))]
pub biomes: Vec<Handle<BiomeAsset>>,
// pub biomes_path: Vec<String>,
}
impl BiomePainterAsset {

View File

@@ -22,7 +22,7 @@ use world_generation::{
use crate::{
camera_system::components::*,
prelude::{ChunkAtlas, PhosChunk, PhosChunkRegistry},
prelude::{PhosAssets, PhosChunk, PhosChunkRegistry},
shader_extensions::{
chunk_material::ChunkMaterial,
water_material::{WaterMaterial, WaterSettings},
@@ -64,7 +64,8 @@ impl Plugin for MapInitPlugin {
app.configure_loading_state(
LoadingStateConfig::new(AssetLoadState::Loading)
.with_dynamic_assets_file::<StandardDynamicAssetCollection>("phos.assets.ron")
.load_collection::<ChunkAtlas>(),
.load_collection::<PhosAssets>()
.load_collection::<BiomePainterAsset>()
);
app.add_systems(Startup, load_textures.run_if(in_state(AssetLoadState::FinalizeAssets)));
@@ -106,7 +107,7 @@ struct WaterInspect(Handle<ExtendedMaterial<StandardMaterial, WaterMaterial>>);
fn load_textures(
mut commands: Commands,
mut atlas: ResMut<ChunkAtlas>,
mut atlas: ResMut<PhosAssets>,
mut water_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, WaterMaterial>>>,
) {
let water_material = water_materials.add(ExtendedMaterial {
@@ -141,7 +142,7 @@ fn finalize_biome_painter(
}
fn finalize_texture(
mut atlas: ResMut<ChunkAtlas>,
mut atlas: ResMut<PhosAssets>,
mut images: ResMut<Assets<Image>>,
mut chunk_materials: ResMut<Assets<ExtendedMaterial<StandardMaterial, ChunkMaterial>>>,
mut next_load_state: ResMut<NextState<AssetLoadState>>,
@@ -237,7 +238,7 @@ fn spawn_map(
mut heightmap: ResMut<Map>,
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
atlas: Res<ChunkAtlas>,
atlas: Res<PhosAssets>,
tile_assets: Res<Assets<TileAsset>>,
tile_mappers: Res<Assets<TileMapperAsset>>,
mut generator_state: ResMut<NextState<GeneratorState>>,

View File

@@ -3,12 +3,13 @@ use bevy::pbr::ExtendedMaterial;
use bevy::prelude::*;
use bevy::prelude::{Component, Image, Resource};
use bevy_asset_loader::asset_collection::AssetCollection;
use world_generation::biome_painter::BiomePainterAsset;
use crate::shader_extensions::chunk_material::ChunkMaterial;
use crate::shader_extensions::water_material::WaterMaterial;
#[derive(AssetCollection, Resource, Default)]
pub struct ChunkAtlas {
pub struct PhosAssets {
#[asset(key = "chunk_atlas")]
pub handle: Handle<Image>,
pub chunk_material_handle: Handle<ExtendedMaterial<StandardMaterial, ChunkMaterial>>,